GNOME Bugzilla – Bug 621985
Traceback in unfocusedAlertAndDialogCount
Last modified: 2012-10-05 02:35:19 UTC
From José on the orca-devel-list:
+ Trace 222474
Traceback (most recent call last): File "/data/software/orca/dev/lib/python2.6/site-packages/orca/generator.py", line 248, in generate globalsDict[arg] = self._methodsDict[arg](obj, **args) File "/data/software/orca/dev/lib/python2.6/site-packages/orca/speech_generator.py", line 1168, in _generateUnfocusedDialogCount self._script.utilities.unfocusedAlertAndDialogCount(obj) File "/data/software/orca/dev/lib/python2.6/site-packages/orca/script_utilities.py", line 1441, in unfocusedAlertAndDialogCount if child.getRole() == pyatspi.ROLE_ALERT or \ AttributeError: 'NoneType' object has no attribute 'getRole'
José, can you reliably make this problem occur? The reason I ask is that the call to child.getRole() is in a for loop which is iterating over each child in app. Therefore, child should not be None. So I can add a sanity check to make the traceback not appear, but I'd really like to know what child is (or in this case, what child was) and why it's gone away.
I can reproduce in my machine but I need two vversions of orca installed, 2.30.0, and 2.31.4pre and version 2.30.0 must be the default. 1.Restart your X environment, just log in and make sure that the orca 2.30.0 started. Note that the screen preferences of the Orca will appear. 2. Start orca 2.31.4pre. 3. Open a terminal session. 4. Start again orca 2.31.4pre in debug mode. 5. Start eclipse. 6. Quit eclipse normally. 7. Restart orca and inspect the debug output, you'll find the traceback. Repeat all steps but before execute step 4, kill at-spi-registryd and restart orca. Goodbye unwanted tracebacks Thanks.
Another way to reproduce. 1. killall at-spi-registryd 2. start orca 2.30.0. 3. start orca 2.31.4pre in debug mode 4. start eclipse, although I think that could be reproduced with other application.
I found in the orca.debug.out file the following messages: looking at text: line at 0 is (start=0 end=13): 'vilmar@jve: ~' flat_review.getZonesFromAccessible (name=Terminal role=terminal) looking at text: line at 79 is (start=0 end=80): ' File "/usr/lib/pymodules/python2.6/orca/espeechfactory.py", line 439, in _getc' line at 80 is (start=80 end=85): 'odes ' line at 85 is (start=85 end=138): ' raise Exception("No code table for %s" % engine) ' line at 138 is (start=138 end=174): 'Exception: No code table for ibmtts ' line at 174 is (start=174 end=175): ' ' line at 175 is (start=175 end=176): ' ' line at 176 is (start=176 end=211): 'Traceback (most recent call last): ' line at 211 is (start=211 end=291): ' File "/usr/lib/pymodules/python2.6/orca/speech.py", line 100, in _initSpeechSe' line at 291 is (start=291 end=296): 'rver ' /usr/lib/pymodules/python2.6/orca/espeechfactory.py is a file present where my old orca is installed and I am running orca 2.31.4. What is it doing here?
With respect to the originally filed bug, there is now a sanity check which will prevent the traceback. With respect to the espeechfactory stuff, that is no longer in Orca.