You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Mikhail Fursov (JIRA)" <ji...@apache.org> on 2007/04/16 15:30:16 UTC

[jira] Reopened: (HARMONY-3632) [drlvm][kernel] Drlvm does not allow to call public constructor of 'private static' inner class from within another class

     [ https://issues.apache.org/jira/browse/HARMONY-3632?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mikhail Fursov reopened HARMONY-3632:
-------------------------------------


I tried to run ArgoUML (v0.24) today and go this error:

W:\projects\argouml>argouml.bat
[org.netbeans.mdr.Logger] INFORMATIONAL *********** Exception occurred ************ at Mon Apr 16 20:00:33 NOVST 2007
java.lang.IllegalAccessError: from org/netbeans/mdr/handlers/gen/PackageGenerator to [Lorg/netbeans/lib/jmi/util/ClassFileGener
ator$MethodInfo;
        at org.netbeans.lib.jmi.util.ClassFileGenerator.generateClassFile(ClassFileGenerator.java:162)
        at org.netbeans.mdr.handlers.gen.HandlerGenerator.generateHandler(HandlerGenerator.java:90)
        at org.netbeans.mdr.handlers.BaseObjectHandler.getHandlerClass(BaseObjectHandler.java:108)
        at org.netbeans.mdr.NBMDRepositoryImpl.getHandler(NBMDRepositoryImpl.java:631)
        at org.netbeans.mdr.NBMDRepositoryImpl.getHandler(NBMDRepositoryImpl.java:613)
        at org.netbeans.mdr.NBMDRepositoryImpl.getExtent(NBMDRepositoryImpl.java:314)
        at org.netbeans.mdr.NBMDRepositoryImpl.installFakeMof(NBMDRepositoryImpl.java:1332)
        at org.netbeans.mdr.NBMDRepositoryImpl.boot(NBMDRepositoryImpl.java:1315)
        at org.netbeans.mdr.NBMDRepositoryImpl.initCheck(NBMDRepositoryImpl.java:749)
        at org.netbeans.mdr.NBMDRepositoryImpl.getExtent(NBMDRepositoryImpl.java:298)
        at org.argouml.model.mdr.MDRModelImplementation.<init>(MDRModelImplementation.java:254)
        at java.lang.reflect.VMReflection.newClassInstance(VMReflection.java)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:298)
        at java.lang.Class.newInstance(Class.java:719)
        at org.argouml.model.Model.<clinit>(Model.java:124)
        at org.argouml.application.Main.main(Main.java:250)
Uncaught exception in main:
java.lang.ExceptionInInitializerError
        at org.argouml.application.Main.main(Main.java:250)
Caused by: org.netbeans.mdr.util.DebugException: Missing storage files or different storage version.
        at org.netbeans.mdr.storagemodel.MdrStorage.initializeIndexes(MdrStorage.java:507)
        at org.netbeans.mdr.storagemodel.MdrStorage.rollback(MdrStorage.java:554)
        at org.netbeans.mdr.util.TransactionMutex.end(TransactionMutex.java:73)
        at org.netbeans.mdr.util.MultipleReadersMutex.leave(MultipleReadersMutex.java:173)
        at org.netbeans.mdr.NBMDRepositoryImpl.endTrans(NBMDRepositoryImpl.java:248)
        at org.netbeans.mdr.NBMDRepositoryImpl.boot(NBMDRepositoryImpl.java:1322)
        at org.netbeans.mdr.NBMDRepositoryImpl.initCheck(NBMDRepositoryImpl.java:749)
        at org.netbeans.mdr.NBMDRepositoryImpl.getExtent(NBMDRepositoryImpl.java:298)
        at org.argouml.model.mdr.MDRModelImplementation.<init>(MDRModelImplementation.java:254)
        at java.lang.reflect.VMReflection.newClassInstance(VMReflection.java)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:298)
        at java.lang.Class.newInstance(Class.java:719)
        at org.argouml.model.Model.<clinit>(Model.java:124)
        ... 1 more


The Lorg/netbeans/lib/jmi/util/ClassFileGenerator$MethodInfo; class has 'protected' access modifier and is not static!
I can't create minimized testcase for this issue because SUN's javac refuses to compile such sources.

Both SUN and BEA runs this test OK.
I propose reconsidering default DRLVM behaviour to be compatible with BEA and SUN in this feature.


> [drlvm][kernel] Drlvm does not allow to call public constructor of 'private static' inner class from within another class
> -------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3632
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3632
>             Project: Harmony
>          Issue Type: Bug
>          Components: App-Oriented Bug Reports, DRLVM, Non-bug differences from RI
>            Reporter: Mikhail Fursov
>         Assigned To: Alexey Varlamov
>
> Here is the test that passes with SUN or BEA but fails with DRLVM
> import java.lang.reflect.*;
> public class Hello {
>     public static void main(String[] args) throws Exception {
>         Class cls = A.class.getDeclaredClasses()[0];
>         Constructor con = cls.getDeclaredConstructors()[0];
>         Object[] params = new Object[0];
>         con.newInstance(params);
>     }
> }
> class A {
>     private static class B {
>         B() {
>             System.out.println("PASSED");
>         }
>     }
> }
> This test prevents joda-time (see http://joda-time.sourceforge.net, JSR310)  tests to be passed on DLRVM

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.