#849: BibEdit: exception encountered when using "back" browser button
----------------------+----------------------
Reporter: jcaffaro | Owner: jmartinm
Type: defect | Status: new
Priority: major | Milestone:
Component: BibEdit | Version:
Keywords: |
----------------------+----------------------
(see exception)
{{{
** Traceback details
Traceback (most recent call last):
File "/usr/lib64/python2.4/site-
packages/invenio/webinterface_handler_wsgi.py", line 433, in application
ret = invenio_handler(req)
File "/usr/lib64/python2.4/site-
packages/invenio/webinterface_handler.py", line 358, in _profiler
return _handler(req)
File "/usr/lib64/python2.4/site-
packages/invenio/webinterface_handler.py", line 400, in _handler
return root._traverse(req, path, False, guest_p)
File "/usr/lib64/python2.4/site-
packages/invenio/webinterface_handler.py", line 235, in _traverse
return obj._traverse(req, path, do_head, guest_p)
File "/usr/lib64/python2.4/site-
packages/invenio/webinterface_handler.py", line 248, in _traverse
result = _check_result(req, obj(req, form))
File "/usr/lib64/python2.4/site-
packages/invenio/bibedit_webinterface.py", line 141, in index
json_data))
File "/usr/lib64/python2.4/site-packages/invenio/bibedit_engine.py",
line 323, in perform_request_ajax
data))
File "/usr/lib64/python2.4/site-packages/invenio/bibedit_engine.py",
line 736, in perform_request_record
if cache_exists(recid, uid) and get_cache_mtime(recid, uid) == \
KeyError: 'cacheMTime'
** Stack frame details
Frame application in /usr/lib64/python2.4/site-
packages/invenio/webinterface_handler_wsgi.py at line 450
-------------------------------------------------------------------------------
447 else:
448 req.flush()
449 except:
----> 450 register_exception(req=req, alert_admin=True)
451 if not req.response_sent_p:
452 req.status = HTTP_INTERNAL_SERVER_ERROR
453 req.headers_out['content-type'] = 'text/html'
-------------------------------------------------------------------------------
start_response = '<built-in method start_response of
mod_wsgi.Adapter object at 0x2aaabc988a80>'
environ = '{\'mod_wsgi.listener_port\': \'443\',
\'HTTP_REFERER\': \'https://cdsweb.cern.ch/record/edit/?ln=en\',
\'mod_wsgi.listener_host\': \'\', \'SERVER_SOFTWARE\': \'Apache\',
\'SCRIPT_NAME\': \'\', \'mod_wsgi.handler_script\': \'\',
\'SERVER_SIGNATURE\': \'\', \'REQUEST_METHOD\': \'POST\',
\'HTTP_KEEP_ALIVE\': \'115\', \'SERVER_PROTOCOL\': \'HTTP/1.1\',
\'QUERY_STRING\': \'\', \'CONTENT_LENGTH\': \'98\',
\'HTTP_ACCEPT_CHARSET\': \'ISO-8859-1,utf-8;q=0.7,*;q=0.7\',
\'HTTP_USER_AGENT\': \'Mozilla/5.0 [...]
req =
'<invenio.webinterface_handler_wsgi.SimulatedModPythonRequest object at
0x2aaac6bd3590>'
possible_handler = 'None'
possible_module = 'None'
Frame _profiler in /usr/lib64/python2.4/site-
packages/invenio/webinterface_handler.py at line 358
-------------------------------------------------------------------------------
355 raise Exception('Debugging requested, but
no debugger registered: "%s"' % args['debug'])
356 return _handler(req)
357 else:
----> 358 return _handler(req)
359
360 def _handler(req):
361 """ This handler is invoked by mod_python with the
apache request."""
-------------------------------------------------------------------------------
_handler = '<function _handler at 0x2aaab4f0ade8>'
args = '{}'
req =
'<invenio.webinterface_handler_wsgi.SimulatedModPythonRequest object at
0x2aaac6bd3590>'
Frame _handler in /usr/lib64/python2.4/site-
packages/invenio/webinterface_handler.py at line 442
-------------------------------------------------------------------------------
439
440 ## as suggested in
441 ## <http://www.python.org/doc/2.3.5/lib/module-
gc.html>
----> 442 del gc.garbage[:]
443
444 return _profiler
445
-------------------------------------------------------------------------------
allowed_methods = "('GET', 'POST', 'HEAD', 'OPTIONS')"
guest_p = '0'
req =
'<invenio.webinterface_handler_wsgi.SimulatedModPythonRequest object at
0x2aaac6bd3590>'
uri = "'/record/edit/'"
path = "['record', 'edit', '']"
root =
'<invenio.webinterface_layout.WebInterfaceInvenio object at
0x2aaab4f0b450>'
Frame _traverse in /usr/lib64/python2.4/site-
packages/invenio/webinterface_handler.py at line 235
-------------------------------------------------------------------------------
232 # renderer. We even pass it the parsed form arguments.
233 if path:
234 if hasattr(obj, '_traverse'):
----> 235 return obj._traverse(req, path, do_head,
guest_p)
236 else:
237 raise apache.SERVER_RETURN,
apache.HTTP_NOT_FOUND
238
-------------------------------------------------------------------------------
obj =
'<invenio.bibedit_webinterface.WebInterfaceEditPages object at
0x2aaabd297990>'
name = 'None'
guest_p = '0'
req =
'<invenio.webinterface_handler_wsgi.SimulatedModPythonRequest object at
0x2aaac6bd3590>'
component = "'record'"
do_head = 'False'
path = "['']"
self =
'<invenio.webinterface_layout.WebInterfaceInvenio object at
0x2aaab4f0b450>'
Frame _traverse in /usr/lib64/python2.4/site-
packages/invenio/webinterface_handler.py at line 248
-------------------------------------------------------------------------------
245 req.uri not in CFG_NO_LANG_RECOGNITION_URIS:
246 ln = get_preferred_user_language(req)
247 form.add_field('ln', ln)
----> 248 result = _check_result(req, obj(req, form))
249 return result
250
251 def __call__(self, req, form):
-------------------------------------------------------------------------------
obj = '<bound method WebInterfaceEditPages.index
of <invenio.bibedit_webinterface.WebInterfaceEditPages object at
0x2aaabd297990>>'
name = "'index'"
form = '{\'ln\': [Field(\'ln\', \'en\')],
\'jsondata\': [Field(\'jsondata\',
\'{"recID":1396254,"requestType":"deleteRecordCache","ID":21}\')]}'
ln = "'en'"
guest_p = '0'
req =
'<invenio.webinterface_handler_wsgi.SimulatedModPythonRequest object at
0x2aaac6bd3590>'
component = "''"
do_head = 'False'
path = '[]'
self =
'<invenio.bibedit_webinterface.WebInterfaceEditPages object at
0x2aaabd297990>'
Frame index in /usr/lib64/python2.4/site-
packages/invenio/bibedit_webinterface.py at line 141
-------------------------------------------------------------------------------
138 else:
139 # Handle AJAX request.
140 json_response.update(perform_request_ajax(req,
recid, uid,
----> 141
json_data))
142 return json.dumps(json_response)
143
144 def compare_revisions(self, req, form):
-------------------------------------------------------------------------------
json_response = "{'resultCode': 0, 'recID': 1396254, 'ID':
21}"
ajax_request = 'True'
uid = '0'
form = '{\'ln\': [Field(\'ln\', \'en\')],
\'jsondata\': [Field(\'jsondata\',
\'{"recID":1396254,"requestType":"deleteRecordCache","ID":21}\')]}'
argd = "{'ln': 'en'}"
self =
'<invenio.bibedit_webinterface.WebInterfaceEditPages object at
0x2aaabd297990>'
req =
'<invenio.webinterface_handler_wsgi.SimulatedModPythonRequest object at
0x2aaac6bd3590>'
user_info = "{'uid': 0, 'agent': 'Mozilla/5.0
(Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.24) Gecko/20111103
Firefox/3.6.24', 'uri': '/record/edit/?', 'precached_usegroups': True,
'session': 'xyz', 'precached_useadmin': True, [...]
recid = '1396254'
json_data = "{'requestType': 'deleteRecordCache',
'recID': 1396254, 'ID': 21}"
Frame perform_request_ajax in /usr/lib64/python2.4/site-
packages/invenio/bibedit_engine.py at line 323
-------------------------------------------------------------------------------
320 'deleteRecord', 'deleteRecordCache',
'prepareRecordMerge', 'revert'):
321 # 'Major' record related requests.
322 response.update(perform_request_record(req,
request_type, recid, uid,
----> 323 data))
324 elif request_type in ('addField', 'addSubfields', \
325 'addFieldsSubfieldsOnPositions',
'modifyContent', \
326 'modifySubfieldTag',
'modifyFieldTag', \
-------------------------------------------------------------------------------
uid = '0'
ln = "'en'"
req =
'<invenio.webinterface_handler_wsgi.SimulatedModPythonRequest object at
0x2aaac6bd3590>'
request_type = "'deleteRecordCache'"
undo_redo = 'None'
recid = '1396254'
isBulk = 'False'
data = "{'requestType': 'deleteRecordCache',
'recID': 1396254, 'ID': 21}"
response = '{}'
Frame perform_request_record in /usr/lib64/python2.4/site-
packages/invenio/bibedit_engine.py at line 736
-------------------------------------------------------------------------------
733 elif request_type == 'deleteRecordCache':
734 # Delete the cache file. Ignore the request if the
cache has been
735 # modified in another editor.
----> 736 if cache_exists(recid, uid) and get_cache_mtime(recid,
uid) == \
737 data['cacheMTime']:
738 delete_cache_file(recid, uid)
739 response['resultCode'] = 11
-------------------------------------------------------------------------------
uid = '0'
ln = "'en'"
req =
'<invenio.webinterface_handler_wsgi.SimulatedModPythonRequest object at
0x2aaac6bd3590>'
request_type = "'deleteRecordCache'"
recid = '1396254'
data = "{'requestType': 'deleteRecordCache',
'recID': 1396254, 'ID': 21}"
response = '{}'
}}}
--
Ticket URL: <https://invenio-software.org/ticket/849>
Invenio <http://invenio-software.org>