Edgewall Software

Opened 16 years ago

Closed 15 years ago

#4116 closed defect (duplicate)

tickets query breaks if custom ticket checkbox field is set, then cleared

Reported by: beardens@… Owned by: Matthew Good
Priority: normal Milestone:
Component: report system Version: 0.10
Severity: major Keywords:
Cc: Branch:
Release Notes:
API Changes:
Internal Changes:

Description (last modified by Christian Boos)

A quick summary is that when trying to execute a tickets query, I get the error: "AssertError: Unable to set Empty component query.num_matches_group." This happens after I clear a previously checked checkbox that is a custom ticket field.

I'll record the scenario first, and the python error trace will be given at the end.

First, I added a custom ticket field, by adding this to my trac.ini:

product_backlog = checkbox
product_backlog.label = Is Product Backlog?
product_backlog.value = 0

Then I defined on a wiki page the following query:

[query:?status=new&status=assigned&status=reopened&group=milestone&owner=%7E&product_backlog=1&&order=priority Product-Backlog Work Items, by Milestone]

The query works unless I do the following steps:

  1. Add a ticket, setting my custom ticket checkbox to checked
  2. Update the ticket by UNCHECKING my custom ticket checkbox

At this point I notice that the ticket change log gets this appended:

    11/9/2006 11:02:49 AM changed by xxx  ¶

        * product_backlog deleted.

I would have expected to see "product_backlog set to 0", but maybe this is irrelevant.

When I try to run my query now, it breaks. (But it had worked earlier after I had just added the ticket with checkbox checked, step 1 of the 2 above.0

Here is the error trace:

Traceback (most recent call last):
  File "C:\bin\Python2.4\Lib\site-packages\trac\web\main.py", line 356, in dispatch_request
  File "C:\bin\Python2.4\Lib\site-packages\trac\web\main.py", line 224, in dispatch
    resp = chosen_handler.process_request(req)
  File "C:\bin\Python2.4\Lib\site-packages\trac\ticket\query.py", line 443, in process_request
    self.display_html(req, query)
  File "C:\bin\Python2.4\Lib\site-packages\trac\ticket\query.py", line 608, in display_html
    req.hdf['query.num_matches_group'] = num_matches_group
  File "C:\bin\Python2.4\Lib\site-packages\trac\web\clearsilver.py", line 195, in __setitem__
    self.set_value(name, value, True)
  File "C:\bin\Python2.4\Lib\site-packages\trac\web\clearsilver.py", line 243, in set_value
    add_value(name, value)
  File "C:\bin\Python2.4\Lib\site-packages\trac\web\clearsilver.py", line 235, in add_value
    add_value('%s.%s' % (prefix, k), value[k])
  File "C:\bin\Python2.4\Lib\site-packages\trac\web\clearsilver.py", line 219, in add_value
    set_str(prefix, int(value))
  File "C:\bin\Python2.4\Lib\site-packages\trac\web\clearsilver.py", line 213, in set_str
    self.hdf.setValue(prefix.encode('utf-8'), str(value))
Error: Traceback (innermost last):
  File "neo_hdf.c", line 783, in hdf_set_value()
  File "neo_hdf.c", line 773, in _set_value()
AssertError: Unable to set Empty component query.num_matches_group.

Now if I update the ticket again and RE-CHECK the custom checkbox, I see the following added to the ticket history, and my query works again.

11/9/2006 11:06:01 AM changed by xxx ¶

    * product_backlog set to 1.

Attachments (0)

Change History (4)

comment:1 by anonymous, 16 years ago

I had a typo and some poor formatting in the report above:

My custom ticket definition is like this:

product_backlog = checkbox 
product_backlog.label = Is Product Backlog? 
product_backlog.value = 0

comment:2 by beardens@…, 16 years ago

I notice that ticket #3939 might be related to this one.

comment:3 by beardens@…, 16 years ago

I forgot to add that my database is sqlLite, and I'm using tracd rather than a web server if that matters.

comment:4 by Christian Boos, 15 years ago

Description: modified (diff)
Resolution: duplicate
Status: newclosed

Most probably a duplicate of #3939, fixed in trunk.

Modify Ticket

Change Properties
Set your email in Preferences
as closed The owner will remain Matthew Good.
The resolution will be deleted. Next status will be 'reopened'.
to The owner will be changed from Matthew Good to the specified user.

Add Comment

E-mail address and name can be saved in the Preferences .
Note: See TracTickets for help on using tickets.