From: Anand C. <str...@gm...> - 2006-08-01 14:03:27
|
Hi, The following code is showing some strange behavior. I am calling SwingUtilities.invokeAndWait with wrong number of arguments. It gives NullPointerException instead of TypeError. from javax.swing import SwingUtilities, JOptionPane from java.lang import Runnable, Thread def f(): JOptionPane.showConfirmDialog(None, "test", "test") class PyRunnable(Runnable): def run(self): f() def g(): SwingUtilities.invokeAndWait(PyRunnable()) if __name__ == "__main__": #f() #Thread(PyRunnable()).start() #SwingUtilities.invokeLater(PyRunnable()) #SwingUtilities.invokeAndWait(PyRunnable()) g() When I call g(), it gives the following exception: java.lang.NullPointerException at org.python.core.PyTableCode.call(PyTableCode.java) at org.python.core.PyCode.call(PyCode.java) at org.python.core.Py.runCode(Py.java) at org.python.core.__builtin__.execfile_flags(__builtin__.java) at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java) at org.python.util.jython.main(jython.java) java.lang.NullPointerException: java.lang.NullPointerException But when i try any one of the other 4 (see the commented code), it gives the correct exception. (no code object) at line 0 File "/tmp/test.py", line 13, in run File "/tmp/test.py", line 10, in f TypeError: showConfirmDialog(): expected 2 or 4-6 args; got 3 What puzzles me is, when i call SwingUtilities.invokeAndWait directly, it works fine(gives right exception), but when i call the same code from a function, it gives NullPointerException. I have tried this with 2.1 and 2.1a1. Both versions give the same result. Any clues? Thanks Anand |
From: Charlie G. <cha...@gm...> - 2006-08-03 04:17:11
|
Hi Anand, Thanks for the detailed code showing the problem. It made tracking this down pretty easy. There was a bug in building tracebacks when a call went down into another thread and threw an exception. It's fixed in svn. It'd be nice if you find a bug in the future if you could file it in the sourceforge tracker. That way I can refer to it in my changes and commits. Thanks, Charlie On 8/1/06, Anand Chitipothu <str...@gm...> wrote: > Hi, > > The following code is showing some strange behavior. > I am calling SwingUtilities.invokeAndWait with wrong number of arguments. > It gives NullPointerException instead of TypeError. > > from javax.swing import SwingUtilities, JOptionPane > from java.lang import Runnable, Thread > > def f(): > JOptionPane.showConfirmDialog(None, "test", "test") > > class PyRunnable(Runnable): > def run(self): f() > > def g(): > SwingUtilities.invokeAndWait(PyRunnable()) > > if __name__ == "__main__": > #f() > #Thread(PyRunnable()).start() > #SwingUtilities.invokeLater(PyRunnable()) > #SwingUtilities.invokeAndWait(PyRunnable()) > > g() > > When I call g(), it gives the following exception: > java.lang.NullPointerException > at org.python.core.PyTableCode.call(PyTableCode.java) > at org.python.core.PyCode.call(PyCode.java) > at org.python.core.Py.runCode(Py.java) > at org.python.core.__builtin__.execfile_flags(__builtin__.java) > at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java) > at org.python.util.jython.main(jython.java) > > java.lang.NullPointerException: java.lang.NullPointerException > > But when i try any one of the other 4 (see the commented code), it > gives the correct exception. > (no code object) at line 0 > File "/tmp/test.py", line 13, in run > File "/tmp/test.py", line 10, in f > TypeError: showConfirmDialog(): expected 2 or 4-6 args; got 3 > > > What puzzles me is, when i call SwingUtilities.invokeAndWait directly, > it works fine(gives right exception), but when i call the same code > from a function, it gives NullPointerException. > > I have tried this with 2.1 and 2.1a1. Both versions give the same result. > > Any clues? > > Thanks > Anand > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys -- and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Jython-dev mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-dev > |