[kaffe] CVS kaffe (kaz): kaffe/kaffevm/access.c

Dalibor Topic robilad at kaffe.org
Thu Dec 15 18:19:07 PST 2005


Ito Kazumitsu wrote:
> From: Dalibor Topic <robilad at kaffe.org>
> Date: Tue, 13 Dec 2005 16:28:43 +0100
> 
> 
>>>        * kaffe/kaffevm/access.c
>>>        (outerof): New function,
>>>        (checkAccess): Corrected the handling of private access.
>>>
>>
>>thanks for the patch, Ito!
> 
> 
> My pleasure.
> 
> With this patch applied (and also even without it), the mauve test
> gnu.testlet.java.lang.Class.newInstance shows the following result.
> 
> gnu.testlet.java.lang.Class.newInstance
> ----
> PASS: gnu.testlet.java.lang.Class.newInstance (number 1)
> PASS: gnu.testlet.java.lang.Class.newInstance (number 2)
> PASS: gnu.testlet.java.lang.Class.newInstance (number 3)
> PASS: gnu.testlet.java.lang.Class.newInstance (number 4)
> PASS: gnu.testlet.java.lang.Class.newInstance (number 5)
> PASS: gnu.testlet.java.lang.Class.newInstance (number 6)
> PASS: gnu.testlet.java.lang.Class.newInstance (number 7)
> PASS: gnu.testlet.java.lang.Class.newInstance (number 8)
> PASS: gnu.testlet.java.lang.Class.newInstance (number 9)
> FAIL: gnu.testlet.java.lang.Class.newInstance (number 10)
> PASS: gnu.testlet.java.lang.Class.newInstance (number 11)
> PASS: gnu.testlet.java.lang.Class.newInstance (number 12)
> PASS: gnu.testlet.java.lang.Class.newInstance (number 13)
> PASS: gnu.testlet.java.lang.Class.newInstance (number 14)
> PASS: gnu.testlet.java.lang.Class.newInstance (number 15)
> 1 of 15 tests failed
> 
> The test case #10 is the case where a privtate constructor
> of an inner class is called from an outer class, that is
> the problematic case from which this kaffe/kaffevm/access.c
> case revealed.
> 
> Sun's JDK passes the test case #10, but as I wrote before,
> this test should fail and JDK's behavour seems to be wrong.
> 

Hi Ito,

Thank you very much for your kind explanation.

I've looked at it again, after Riccardo reported some problems after the 
patch was committed, and now I believe that it is OK, actually to allow 
access in this case, after looking at JLS3, §6.6.1, and a similar 
question from http://forum.java.sun.com/thread.jspa?messageID=3984493 : 
A private constructor of a nested class is explicitely accessible from 
"the body of the top level class enclosing it".

It would explain why I get an error message trying to shut down 
eclipse3, atm, regarding something that looks suspiciouly like an access 
error regarding a nested class' constructor. What do you think?

cheers,
dalibor topic

> _______________________________________________
> kaffe mailing list
> kaffe at kaffe.org
> http://kaffe.org/cgi-bin/mailman/listinfo/kaffe





More information about the kaffe mailing list