From: Peter B. <bri...@ma...> - 2001-08-07 05:45:38
|
Hi! I've got some jython code that works fine when run with jython but breaks down when compiled and run with java. Here's the message I'm seeing. > Java Traceback: > > at org.python.core.Py.JavaError(Py.java, Compiled Code) > at org.python.core.PyTableCode.call(PyTableCode.java, Compiled Code) > at org.python.core.imp.createFromCode(imp.java, Compiled Code) > at org.python.core.imp.createFromClass(imp.java, Compiled Code) > at org.python.core.imp.loadPrecompiled(imp.java, Compiled Code) > at org.python.core.imp.loadFromPath(imp.java, Compiled Code) > at org.python.core.imp.loadFromPath(imp.java, Compiled Code) > at org.python.core.imp.load(imp.java, Compiled Code) > at org.python.core.imp.load(imp.java, Compiled Code) > at org.python.core.imp.importName(imp.java, Compiled Code) > at org.python.core.imp.importName(imp.java, Compiled Code) > at org.python.core.ImportFunction.load(__builtin__.java, Compiled Code) > at org.python.core.ImportFunction.__call__(__builtin__.java, Compiled Code) > at org.python.core.PyObject.__call__(PyObject.java, Compiled Code) > at org.python.core.__builtin__.__import__(__builtin__.java, Compiled Code) > at org.python.core.imp.importFromAs(imp.java, Compiled Code) > at pbj.jpy.pbjgraph$_PyInner.main$35(pbjgraph.java, Compiled Code) > [...] > Traceback (innermost last): > File "/home/brinkman/prog/java/train/pbjp/pbjgraph.py", line 0, in main > File "/home/brinkman/prog/java/gumbie/MenuMaker.py", line 0, in main > java.lang.ExceptionInInitializerError: java.lang.NullPointerException > I've narrowed it down to trouble with the 'os' package. It appears that I can import it without trouble, but any attempt to use it (e.g., use 'os.curdir' or 'os.path.join') causes an exception like the one above. Any ideas? Thanks, Peter |
From: <bc...@wo...> - 2001-08-09 19:10:36
|
[Peter Brinkmann] >I've got some jython code that works fine when run with jython but >breaks down when compiled and run with java. Here's the message I'm >seeing. > >> Java Traceback: >> [...] >> Traceback (innermost last): >> File "/home/brinkman/prog/java/train/pbjp/pbjgraph.py", line 0, in main >> File "/home/brinkman/prog/java/gumbie/MenuMaker.py", line 0, in main >> java.lang.ExceptionInInitializerError: java.lang.NullPointerException It is a bug in the os module when sys.prefix is null. As a workaround you can manually assign a dummy value to sys.prefix before importing "os". import sys sys.prefix="." import os The bug is fixed in jython-2.1a3. regards, finn |
From: Peter B. <bri...@ma...> - 2001-08-10 02:41:16
|
Hi! I installed jython-2.1a3 in order to get the bug fix for the os package. The package os works fine now, but I've discovered a new problem, this time related to jythonc 2.1a3. Here's what I get when compiling a rather large project with jythonc 2.0: jythonc --package pbj.jpy --jar pbjmin.jar --deep --all \ --addpackages pbj,gnu --workdir . pbjp/pbjapp.py processing pbjapp [...] Creating .java files: [...] GUIFactory module TDialog extends QDialog QDialog extends java.awt.Dialog FDialog extends java.awt.FileDialog [...] Here's what I get when compiling the same project with jythonc 2.1a3: /usr/local/jython-2.1a3/jythonc --package pbj.jpy --jar pbjmin.jar \ --deep --all --addpackages pbj,gnu --workdir . pbjp/pbjapp.py processing pbjapp [...] GUIFactory module TDialog extends pbj.jpy.pbj.jpy.GUIFactory.QDialog QDialog extends java.awt.Dialog FDialog extends java.awt.FileDialog [...] Compiling .java to .class... [...] 1 ././pbj/jpy/GUIFactory.java:731: Superclass pbj.jpy.pbj.jpy.GUIFactory.QDialog of nested class pbj.jpy.GUIFactory. TDialog not found. public static class TDialog extends pbj.jpy.pbj.jpy.GUIFactory.QDialog implements org.python.core.PyProxy, org.python.core.ClassDictInit { ^ Note: 4 files use or override a deprecated API. Recompile with "-deprecation" for details. 1 error, 1 warning ERROR DURING JAVA COMPILATION... EXITING The problem is the line 'TDialog extends pbj.jpy.pbj.jpy.GUIFactory.QDialog'. I haven't tried to reproduce the problem with a small amount of code. For the time being I've fixed it by simply reverting to jython-2.0. Best, Peter |
From: <bc...@wo...> - 2001-08-10 06:07:12
|
[Peter Brinkmann] >I installed jython-2.1a3 in order to get the bug fix for the os package. >The package os works fine now, but I've discovered a new problem, this >time related to jythonc 2.1a3. > >[...] 1 ././pbj/jpy/GUIFactory.java:731: Superclass pbj.jpy.pbj.jpy.GUIFactory.QDialog of nested class pbj.jpy.GUIFactory. TDialog not found. > public static class TDialog extends pbj.jpy.pbj.jpy.GUIFactory.QDialog implements org.python.core.PyProxy, org.python.core.ClassDictInit { > ^ > Note: 4 files use or override a deprecated API. Recompile with "-deprecation" for details. > 1 error, 1 warning > > ERROR DURING JAVA COMPILATION... EXITING > >The problem is the line 'TDialog extends pbj.jpy.pbj.jpy.GUIFactory.QDialog'. >I haven't tried to reproduce the problem with a small amount of code. Please try to make an example. And add a bug report about it. >For the time being I've fixed it by simply reverting to jython-2.0. Thats ok. The alpha and betas are mainly meant for testing. regards, finn |
From: Peter B. <bri...@ma...> - 2001-08-10 23:27:09
|
Finn: On Fri, Aug 10, 2001 at 06:09:09AM +0000, Finn Bock wrote: > [...] > Please try to make an example. And add a bug report about it. Okay, I've been able to reproduce the problem in jythonc 2.1a3 with a short bit of code. I just added a bug report (#449956). The bug occurs under the following circumstances: 1. A package derives a subclass A from a java class. 2. The same package derives a subclass B from A. 3. The package gets compiled with the --package option. When creating java code, jythonc 2.1a3 doubles the package name in front of B, i.e., if the name of the package is foo, then it creates the name foo.foo.B, which causes javac to terminate with an error. Here's a program that reproduces the bug: ----------------------------------- import java class spam(java.lang.Object): pass class eggs(spam): pass ----------------------------------- Here's what happens when the above program is being compiled with the --package option: /usr/local/jython-2.1a3/jythonc --package foo jcbug.py processing jcbug Required packages: java.lang Creating adapters: Creating .java files: jcbug module spam extends java.lang.Object eggs extends foo.foo.jcbug.spam Compiling .java to .class... Compiling with args: ['/usr/local/jdk1.2.2/bin/javac', '-classpath', '/usr/local/jython-2.1a3/jython.jar::./jpywork::/usr/local/jython-2.1a3/Tools/jythonc:/home/brinkman/prog/java/test/.:/usr/local/jython-2.1a3/Lib:/home/brinkman/prog/java/gumbie:/home/brinkman/prog/java', './jpywork/foo/jcbug.java'] 1 ./jpywork/foo/jcbug.java:103: Superclass foo.foo.jcbug.spam of nested class foo.jcbug. eggs not found. public static class eggs extends foo.foo.jcbug.spam implements org.python.core.PyProxy, org.python.core.ClassDictInit { ^ 1 error ERROR DURING JAVA COMPILATION... EXITING This problem does not occur with jythonc 2.0, so it seems to be new. Best, Peter |