Modify

Opened 14 years ago

Closed 12 years ago

#8369 closed defect (duplicate)

InternalError with enabled SubversionLink options

Reported by: anonymous Owned by: Pontus Enmark
Priority: high Component: ContextMenuPlugin
Severity: major Keywords:
Cc: Trac Release: 0.12

Description (last modified by Ryan J Ollos)

When I enable SubversionLink options I get an InternalError when I try view source via BrowseSource.

Trac detected an internal error:
AttributeError: 'NoneType' object has no attribute 'rstrip'

Python Traceback
Most recent call last:

    * File "build/bdist.linux-i686/egg/trac/web/main.py", line 513, in _dispatch_request
      Code fragment:
      Line	
      508	try:
      509	if not env and env_error:
      510	raise HTTPInternalError(env_error)
      511	try:
      512	dispatcher = RequestDispatcher(env)
      513	dispatcher.dispatch(req)
      514	except RequestDone:
      515	pass
      516	resp = req._response or []
      517	 
      518	except HTTPException, e:
      Local variables:
      Name	Value
      dispatcher 	<trac.web.main.RequestDispatcher object at 0xa96038c>
      e 	AttributeError("'NoneType' object has no attribute 'rstrip'",)
      env 	<trac.env.Environment object at 0xb18822c>
      env_error 	None
      req 	<Request "GET '/browser'">
      resp 	[]
    * File "build/bdist.linux-i686/egg/trac/web/main.py", line 256, in dispatch
      Code fragment:
      Line	
      251	pprint(data, out)
      252	req.send(out.getvalue(), 'text/plain')
      253	else:
      254	output = chrome.render_template(req, template,
      255	data,
      256	content_type)
      257	# Give the session a chance to persist changes
      258	req.session.save()
      259	req.send(output, content_type or 'text/html')
      260	else:
      261	self._post_process_request(req)
      Local variables:
      Name	Value
      chosen_handler 	<trac.versioncontrol.web_ui.browser.BrowserModule object at 0xabe212c>
      chrome 	<trac.web.chrome.Chrome object at 0xaeb5e8c>
      content_type 	None
      data 	{'dateinfo': <function dateinfo at 0xac8325c>, 'file': None, 'stickyrev': ...
      err 	(<type 'exceptions.AttributeError'>, AttributeError("'NoneType' object has ...
      handler 	<trac.versioncontrol.web_ui.browser.BrowserModule object at 0xabe212c>
      req 	<Request "GET '/browser'">
      resp 	('browser.html', {'dateinfo': <function dateinfo at 0xac8325c>, 'file': ...
      self 	<trac.web.main.RequestDispatcher object at 0xa96038c>
      template 	'browser.html'
    * File "build/bdist.linux-i686/egg/trac/web/chrome.py", line 816, in render_template
      Code fragment:
      Line	
      811	 
      812	stream = template.generate(**data)
      813	 
      814	# Filter through ITemplateStreamFilter plugins
      815	if self.stream_filters:
      816	stream |= self._filter_stream(req, method, filename, stream, data)
      817	 
      818	if fragment:
      819	return stream
      820	 
      821	if method == 'text':
      Local variables:
      Name	Value
      content_type 	'text/html'
      data 	{'all': <built-in function all>, 'pprint': <function pformat at ...
      filename 	'browser.html'
      fragment 	False
      i 	0
      method 	'xhtml'
      req 	<Request "GET '/browser'">
      self 	<trac.web.chrome.Chrome object at 0xaeb5e8c>
      stream 	<genshi.core.Stream object at 0xab200cc>
      template 	<MarkupTemplate "browser.html">
      type_ 	'notices'
    * File "/usr/lib/python2.5/site-packages/Genshi-0.6-py2.5.egg/genshi/core.py", line 132, in __or__
      Code fragment:
      Line	
      127	
      128	:param function: the callable object that should be applied as a filter
      129	:return: the filtered stream
      130	:rtype: `Stream`
      131	"""
      132	return Stream(_ensure(function(self)), serializer=self.serializer)
      133	 
      134	def filter(self, *filters):
      135	"""Apply filters to the stream.
      136	
      137	This method returns a new stream with the given filters applied. The
      Local variables:
      Name	Value
      function 	<function inner at 0xafee454>
      self 	<genshi.core.Stream object at 0xab200cc>
    * File "build/bdist.linux-i686/egg/trac/web/chrome.py", line 955, in inner
      Code fragment:
      Line	
      950	 
      951	def _filter_stream(self, req, method, filename, stream, data):
      952	def inner(stream, ctxt=None):
      953	for filter in self.stream_filters:
      954	stream = filter.filter_stream(req, method, filename, stream,
      955	data)
      956	return stream
      957	return inner
      958	 
      959	def _stream_location(self, stream):
      960	for kind, data, pos in stream:
      Local variables:
      Name	Value
      ctxt 	None
      data 	{'all': <built-in function all>, 'pprint': <function pformat at ...
      filename 	'browser.html'
      filter 	<contextmenu.contextmenu.SourceBrowserContextMenu object at 0xafb4b6c>
      method 	'xhtml'
      req 	<Request "GET '/browser'">
      self 	<trac.web.chrome.Chrome object at 0xaeb5e8c>
      stream 	<genshi.core.Stream object at 0xab200cc>
    * File "build/bdist.linux-i686/egg/contextmenu/contextmenu.py", line 155, in filter_stream
      Code fragment:
      Line	
      150	if 'path' not in data:
      151	# Probably an upstream error
      152	return stream
      153	# provide a link to the svn repository at the top of the Browse Source listing
      154	if self.env.is_component_enabled("contextmenu.contextmenu.SubversionLink"):
      155	content = SubversionLink(self.env).get_content(req, data['path'], stream, data)
      156	if content:
      157	stream |= Transformer("//div[@id='content']/h1").after(content)
      158	# No dir entries; we're showing a file
      159	if not data['dir']:
      160	return stream
      Local variables:
      Name	Value
      data 	{'all': <built-in function all>, 'pprint': <function pformat at ...
      filename 	'browser.html'
      method 	'xhtml'
      req 	<Request "GET '/browser'">
      self 	<contextmenu.contextmenu.SourceBrowserContextMenu object at 0xafb4b6c>
      stream 	<genshi.core.Stream object at 0xab200cc>
    * File "build/bdist.linux-i686/egg/contextmenu/contextmenu.py", line 90, in get_content
      Code fragment:
      Line	
      85	else:
      86	try:
      87	path = entry.path
      88	except AttributeError:
      89	path = entry['path']
      90	href = self.svn_base_url.rstrip('/')
      91	if data['reponame']:
      92	href += '/' + data['reponame']
      93	href += '/' + path
      94	return tag.a('Subversion', href=href)
      95	 
      Local variables:
      Name	Value
      data 	{'all': <built-in function all>, 'pprint': <function pformat at ...
      entry 	'/'
      path 	'/'
      req 	<Request "GET '/browser'">
      self 	<contextmenu.contextmenu.SubversionLink object at 0xad0c1cc>
      stream 	<genshi.core.Stream object at 0xab200cc>

File "build/bdist.linux-i686/egg/trac/web/main.py", line 513, in _dispatch_request
  dispatcher.dispatch(req)
File "build/bdist.linux-i686/egg/trac/web/main.py", line 256, in dispatch
  content_type)
File "build/bdist.linux-i686/egg/trac/web/chrome.py", line 816, in render_template
  stream |= self._filter_stream(req, method, filename, stream, data)
File "/usr/lib/python2.5/site-packages/Genshi-0.6-py2.5.egg/genshi/core.py", line 132, in __or__
  return Stream(_ensure(function(self)), serializer=self.serializer)
File "build/bdist.linux-i686/egg/trac/web/chrome.py", line 955, in inner
  data)
File "build/bdist.linux-i686/egg/contextmenu/contextmenu.py", line 155, in filter_stream
  content = SubversionLink(self.env).get_content(req, data['path'], stream, data)
File "build/bdist.linux-i686/egg/contextmenu/contextmenu.py", line 90, in get_content
  href = self.svn_base_url.rstrip('/')
System Information:
User Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.16) Gecko/20110102 Iceweasel/3.5.16 (like Firefox/3.5.16)
Trac 	0.12
Genshi 	0.6
mod_wsgi 	2.5 (WSGIProcessGroup WSGIApplicationGroup %{GLOBAL})
pysqlite 	2.3.2
Python 	2.5.2 (r252:60911, Jan 24 2010, 15:24:24) [GCC 4.3.2]
setuptools 	0.6c8
SQLite 	3.7.3
Subversion 	1.5.1 (r32289)
jQuery	1.4.2

Attachments (0)

Change History (3)

comment:1 Changed 14 years ago by Ryan J Ollos

Description: modified (diff)

comment:2 Changed 13 years ago by anonymous

Any solution yet? I also have this error.

comment:3 Changed 12 years ago by Ryan J Ollos

Resolution: duplicate
Status: newclosed

Duplicate of #7920.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Pontus Enmark.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.