Message136

Author bckfnn
Recipients
Date 2000-11-18.19:29:55
SpamBayes Score
Marked as misclassified
Message-id
In-reply-to
Content
I think the compiler used when compile the classes in jpython.jar 
generated illegal bytecodes for __builtin__.java.

Decompiling the classfile with:

  javap -classpath jpython.jar -c org.python.core.__builtin__ > out.log

stops in midclass with an error:

  Error: No binary file 'PyObject;'

Running the class cause the problem detected by dsyer.

JPython 1.1 on java1.3.0rc1 (JIT: null)
Copyright (C) 1997-1999 Corporation for National Research Initiatives
>>> map(None,[0],[0])
Traceback (innermost last):
  File "<console>", line 1, in ?
java.lang.IllegalAccessError: try to access method [Lorg.python.core.PyObject;.c
lone()Ljava/lang/Object; from class org.python.core.__builtin__


Recompiling the class with javac or jikes 1.06 solves the problem.


(I recall a problem with earlier (jan-99) versions of jikes where a 
methodcall-cast-clone combination caused problems in the generated bytecode.

        System.out.println((Integer[])arr.clone());

Rewriting the line to:

        Integer[] a = (Integer[])arr.clone();
        System.out.println(a);

did not trigger the bug in jikes. Upgrading to a later jikes version 
also helped)
History
Date User Action Args
2008-02-20 17:16:42adminlinkissue222845 messages
2008-02-20 17:16:42admincreate