Edgewall Software
Modify

Opened 16 years ago

Closed 16 years ago

#8105 closed defect (fixed)

TypeError on displaying changeset (possible whitespace diff problem)

Reported by: gebb@… Owned by: Christian Boos
Priority: high Milestone: 0.12
Component: version control/changeset view Version: 0.12dev
Severity: normal Keywords:
Cc: Branch:
Release Notes:
API Changes:
Internal Changes:

Description

Trac fails to show some changesets, giving the following error message:

TypeError: argument of type 'NoneType' is not iterable

But it successfully shows this same changeset for individual files. I guess that has something to do with whitespace ignoring options, because turning the option "Ignore white space changes" off sometimes helps, but sometimes no changes to that options help.

How to Reproduce

While doing a GET operation on /changeset/79/, Trac issued an internal error.

(please provide additional details here)

Request parameters:

{'new': u'79', 'new_path': u'/'}

System Information

Trac 0.12dev-r7924
Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit (Intel)]
setuptools 0.6c9
SQLite 3.3.4
pysqlite 2.3.2
Genshi 0.6dev-r999
Pygments 1.0
Subversion 1.5.5 (r34862)

Python Traceback

Traceback (most recent call last):
  File "c:\python25\lib\site-packages\Trac-0.12dev_r7924-py2.5.egg\trac\web\main.py", line 459, in _dispatch_request
    dispatcher.dispatch(req)
  File "c:\python25\lib\site-packages\Trac-0.12dev_r7924-py2.5.egg\trac\web\main.py", line 237, in dispatch
    content_type)
  File "c:\python25\lib\site-packages\Trac-0.12dev_r7924-py2.5.egg\trac\web\chrome.py", line 774, in render_template
    stream.render(method, doctype=doctype, out=buffer)
  File "build\bdist.win32\egg\genshi\core.py", line 183, in render
    return encode(generator, method=method, encoding=encoding, out=out)
  File "build\bdist.win32\egg\genshi\output.py", line 57, in encode
    for chunk in iterator:
  File "build\bdist.win32\egg\genshi\output.py", line 307, in __call__
    for kind, data, pos in stream:
  File "build\bdist.win32\egg\genshi\output.py", line 749, in __call__
    for kind, data, pos in stream:
  File "build\bdist.win32\egg\genshi\output.py", line 588, in __call__
    for kind, data, pos in stream:
  File "build\bdist.win32\egg\genshi\output.py", line 694, in __call__
    for kind, data, pos in chain(stream, [(None, None, None)]):
  File "build\bdist.win32\egg\genshi\output.py", line 528, in __call__
    for ev in stream:
  File "build\bdist.win32\egg\genshi\core.py", line 287, in _ensure
    for event in stream:
  File "build\bdist.win32\egg\genshi\core.py", line 287, in _ensure
    for event in stream:
  File "c:\python25\lib\site-packages\Trac-0.12dev_r7924-py2.5.egg\trac\web\chrome.py", line 839, in _strip_accesskeys
    for kind, data, pos in stream:
  File "build\bdist.win32\egg\genshi\core.py", line 287, in _ensure
    for event in stream:
  File "c:\python25\lib\site-packages\Trac-0.12dev_r7924-py2.5.egg\trac\web\chrome.py", line 828, in _generate
    for kind, data, pos in stream:
  File "build\bdist.win32\egg\genshi\template\base.py", line 603, in _include
    for event in stream:
  File "build\bdist.win32\egg\genshi\template\markup.py", line 382, in _match
    ctxt, start=idx + 1, **vars):
  File "build\bdist.win32\egg\genshi\template\markup.py", line 382, in _match
    ctxt, start=idx + 1, **vars):
  File "build\bdist.win32\egg\genshi\template\markup.py", line 330, in _match
    for event in stream:
  File "build\bdist.win32\egg\genshi\template\base.py", line 577, in _exec
    for event in stream:
  File "build\bdist.win32\egg\genshi\template\base.py", line 567, in _eval
    for event in substream:
  File "build\bdist.win32\egg\genshi\template\base.py", line 530, in _eval
    for kind, data, pos in stream:
  File "build\bdist.win32\egg\genshi\template\base.py", line 585, in _flatten
    for event in stream:
  File "build\bdist.win32\egg\genshi\core.py", line 287, in _ensure
    for event in stream:
  File "build\bdist.win32\egg\genshi\path.py", line 145, in _generate
    subevent = stream.next()
  File "build\bdist.win32\egg\genshi\template\base.py", line 603, in _include
    for event in stream:
  File "build\bdist.win32\egg\genshi\template\markup.py", line 319, in _strip
    event = stream.next()
  File "build\bdist.win32\egg\genshi\template\base.py", line 577, in _exec
    for event in stream:
  File "build\bdist.win32\egg\genshi\template\base.py", line 567, in _eval
    for event in substream:
  File "build\bdist.win32\egg\genshi\template\base.py", line 530, in _eval
    for kind, data, pos in stream:
  File "build\bdist.win32\egg\genshi\template\base.py", line 585, in _flatten
    for event in stream:
  File "build\bdist.win32\egg\genshi\core.py", line 287, in _ensure
    for event in stream:
  File "build\bdist.win32\egg\genshi\path.py", line 145, in _generate
    subevent = stream.next()
  File "build\bdist.win32\egg\genshi\template\base.py", line 616, in _include
    for event in tmpl.generate(ctxt, **vars):
  File "build\bdist.win32\egg\genshi\template\base.py", line 603, in _include
    for event in stream:
  File "build\bdist.win32\egg\genshi\template\markup.py", line 330, in _match
    for event in stream:
  File "build\bdist.win32\egg\genshi\template\base.py", line 577, in _exec
    for event in stream:
  File "build\bdist.win32\egg\genshi\template\base.py", line 530, in _eval
    for kind, data, pos in stream:
  File "build\bdist.win32\egg\genshi\template\base.py", line 592, in _flatten
    for event in self._flatten(substream, ctxt, **vars):
  File "build\bdist.win32\egg\genshi\template\base.py", line 592, in _flatten
    for event in self._flatten(substream, ctxt, **vars):
  File "build\bdist.win32\egg\genshi\template\base.py", line 591, in _flatten
    **vars)
  File "build\bdist.win32\egg\genshi\template\base.py", line 267, in _apply_directives
    stream = directives[0](iter(stream), directives[1:], ctxt, **vars)
  File "build\bdist.win32\egg\genshi\template\directives.py", line 401, in __call__
    value = _eval_expr(self.expr, ctxt, **vars)
  File "build\bdist.win32\egg\genshi\template\base.py", line 281, in _eval_expr
    retval = expr.evaluate(ctxt)
  File "build\bdist.win32\egg\genshi\template\eval.py", line 178, in evaluate
    return eval(self.code, _globals, {'__data__': data})
  File "C:\Python25\lib\site-packages\trac-0.12dev_r7924-py2.5.egg\trac\templates\diff_div.html", line 45, in <Expression u"item.diffs or item.props or 'comments' in item">
    <li py:if="item.diffs or item.props or 'comments' in item" class="entry" py:with="comments = item.get('comments')">
TypeError: argument of type 'NoneType' is not iterable

Attachments (0)

Change History (3)

comment:1 by Christian Boos, 16 years ago

Milestone: 0.12
Owner: set to Christian Boos
Priority: normalhigh
Version: devel0.12dev

Thanks for the report, that's a regression introduced in r7880.

File "C:\Python25\lib\site-packages\trac-0.12dev_r7924-py2.5.egg\trac\templates\diff_div.html", line 45, in <Expression u"item.diffs or item.props or 'comments' in item">
    <li py:if="item.diffs or item.props or 'comments' in item" class="entry" py:with="comments = item.get('comments')">

Please try to replace the above test with:

    <li py:if="item and (item.diffs or item.props or 'comments' in item)"

in reply to:  1 comment:2 by gebb@…, 16 years ago

Please try to replace the above test with:

Wow, that was fast! Thanks for your help, that worked.

comment:3 by Christian Boos, 16 years ago

Resolution: fixed
Status: newclosed

Fixed in r7933, thanks for the report!

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Christian Boos.
The resolution will be deleted. Next status will be 'reopened'.
to The owner will be changed from Christian Boos 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.