[kaffe] unexpected java.lang.IllegalAccessError
Guilhem Lavaux
guilhem@kaffe.org
Sun Sep 21 13:02:01 2003
Helmer Krämer wrote:
>On Sun, 21 Sep 2003 13:12:34 -0600 (MDT)
>Timothy Stack <stack@cs.utah.edu> wrote:
>
>
>
>>>The attached program causes java.lang.IllegalAccessError
>>>when run with kaffe (ChangeLog head: 2003-09-13 Dalibor Topic
>>><robilad@kaffe.org>).
>>>
>>>When run with JDK
>>>
>>>
>>Did you run it with '-verify' on? I get something like:
>>
>>516 irontown:tmp8/katest> /usr/local/jdk1.3.1/bin/java -verify a.TestA
>>Exception in thread "main" java.lang.IllegalAccessError: try to access
>>class b/TestBB from class a/TestA
>> at a.TestA.main(TestA.java:8)
>>
>>
>>
>>>or kaffe (ChangeLog head: 2003-08-27 Jim Pick
>>><jim@kaffe.org>), no such error occus.
>>>
>>>
>>[test case cut...]
>>
>>Okie, I've had a look and I think its a problem with kjc and not the VM.
>>In particular the code generated by kjc for the call to foo() is wrong (i
>>think):
>>
>> invokevirtual b/TestBB/foo()I
>>
>>Notice that its making the call on TestBB (package-private class) and not
>>TestB (public class). Code generated by jikes/javac generates the correct
>>call to TestB/foo().
>>
>>
>
>Speaking about kjc - is the project still alive?
>I mean at the moment it looks like more and more
>people start using kaffe and we're thus running
>into several bugs in kjc that can be triggered by
>pretty usual java programs (could've been spotted
>earlier).
>
>As for the runtime checking stuff: there seems to
>be another bug related to inner classes:
>
>hkraemer@moose:/tmp/access-test$ cat a/test.java
>package a;
>public class test
>{
> protected static class inner
> {
> public inner (){}
> }
>}
>hkraemer@moose:/tmp/access-test$ cat b/test1.java
>package b;
>import a.test;
>public class test1 extends test
>{
> public void bar ()
> {
> new inner ();
> }
>
> public static void main (String[] args)
> {
> new test1().bar();
> }
>}
>
>Looks like access to members of inherited inner
>classes is denied (test case was compiled with
>jikes 1.18).
>
>
I might have a look at that one tomorrow evening. As I've already dealt
with that problem of permission it should be pretty quick...
Cheers,
Guilhem.