Issue222845

classification
Title: java.lang.IllegalAccessError in __builtin__.map
Type: Severity: normal
Components: Core Versions:
Milestone:
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: bckfnn
Priority: low Keywords:

Created on 2000-11-18.19:29:55 by bckfnn, last changed 2000-11-18.22:59:51 by bckfnn.

Messages
msg136 (view) Author: Finn Bock (bckfnn) Date: 2000-11-18.19:29:55
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)
msg137 (view) Author: Finn Bock (bckfnn) Date: 2000-11-18.22:59:51
Fixed by using a later compiler.
History
Date User Action Args
2000-11-18 19:29:55bckfnncreate