[kaffe] kaffe (1.0.7 and CVS) problem with jython
Vesa Kaihlavirta
vpkaihla at cc.jyu.fi
Fri Sep 27 02:42:40 PDT 2002
Howdy. I'm a developer in a project (http://www.gzz.info) that runs on java
and jython. The project is Free, but unfortunately due to evil deadlines
on demos, and such, some of our developers have fallen to use Sun's JDK.
My task is to get the program back to running on a free JVM, and Kaffe
seems to be the best alternative now.
In general, most of the code works pretty well, or if it doesn't, it can be
fixed easily. But the latest is beyond me: it seems to be related to
Jython and Object's Clone method. That method is native in the kaffe libraries,
and I don't see anything wrong there. Somehow, the python object just isn't
Cloneable.
This piece causes no errors on the commercial JVM's (sun's jdk 1.3.1 & 1.4),
so apparently there's something missing in Kaffe. Any idea what it is, and what
I could do about it?
If there's not enough info about the problem here, please ask for more.
Here is the traceback, and snippets of code from the failing points:
java -ms128M -mx128M -Dpython.path=depends/jythonlib.jar:depends/pythonlib.jar:depends/yaml.jar -Dpython.verbose=message -Duser.editor=/usr/bin/nano org.python.util.jython Gzz.py -Dgzzclient=awt -t
Traceback (innermost last):
File "Gzz.py", line 128, in ?
File "Gzz.py", line 125, in __init__
File "Gzz.py", line 95, in set_defaults
java.lang.CloneNotSupportedException: gzz/mediaserver/MediaserverFiler$Group
at java.lang.Object.clone(Object.java:native)
at java.lang.reflect.Method.invoke0(Method.java:native)
at java.lang.reflect.Method.invoke(Method.java:256)
at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:line unknown, pc 0x854dee1)
at org.python.core.PyMethod.__call__(PyMethod.java:line unknown, pc 0x854c080)
at org.python.core.PyObject.__call__(PyObject.java:line unknown, pc 0x84f118c)
at org.python.core.PyInstance.invoke(PyInstance.java:line unknown, pc 0xb8ac16f)
at org.python.pycode._pyx0.set_defaults$4(Gzz.py:95)
at org.python.pycode._pyx0.call_function(Gzz.py:line unknown, pc 0xbf1a91b)
at org.python.core.PyTableCode.call(PyTableCode.java:line unknown, pc 0x8cf35eb)
at org.python.core.PyTableCode.call(PyTableCode.java:line unknown, pc 0xacc51bb)
at org.python.core.PyFunction.__call__(PyFunction.java:line unknown, pc 0xabe1466)
at org.python.core.PyInstance.invoke(PyInstance.java:line unknown, pc 0x836ae55)
at org.python.pycode._pyx0.__init__$6(Gzz.py:125)
at org.python.pycode._pyx0.call_function(Gzz.py:line unknown, pc 0xbf1a965)
at org.python.core.PyTableCode.call(PyTableCode.java:line unknown, pc 0x8cf35eb)
at org.python.core.PyTableCode.call(PyTableCode.java:line unknown, pc 0x9c6dd5c)
at org.python.core.PyTableCode.call(PyTableCode.java:line unknown, pc 0xb8a76f0)
at org.python.core.PyFunction.__call__(PyFunction.java:line unknown, pc 0xb99318e)
at org.python.core.PyInstance.__init__(PyInstance.java:line unknown, pc 0xa11347e)
at org.python.core.PyClass.__call__(PyClass.java:line unknown, pc 0xa1104d5)
at org.python.core.PyObject.__call__(PyObject.java:line unknown, pc 0x854f1c2)
at org.python.pycode._pyx0.f$0(Gzz.py:128)
at org.python.pycode._pyx0.call_function(Gzz.py:line unknown, pc 0xbf1a887)
at org.python.core.PyTableCode.call(PyTableCode.java:line unknown, pc 0x8cf35eb)
at org.python.core.PyCode.call(PyCode.java:line unknown, pc 0x8bf369f)
at org.python.core.Py.runCode(Py.java:line unknown, pc 0xbf1a75b)
at org.python.core.__builtin__.execfile_flags(__builtin__.java:line unknown, pc 0xbce2a3b)
at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:line unknown, pc 0xba8ba2c)
at org.python.util.jython.main(jython.java:line unknown, pc 0x830785e)
java.lang.CloneNotSupportedException: java.lang.CloneNotSupportedException: gzz/mediaserver/MediaserverFiler$Group
make: *** [run] Error 255
Gzz.py, line 95: "self.version = self.filers.getFiler("gzz_fallback_slice").load()"
The getFiler-method:
public Filer getFiler(String id) throws IOException {
Filer f = (Filer)filers.get(id);
if (f == null) {
f = createFiler(id); // createFiler is a protected method! Is that the problem?
filers.put(id, f);
}
return f;
}
--
V.K. <vpkaihla at cc.jyu.fi>
Thank you for reading this.
More information about the kaffe
mailing list