harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pavel Pervov (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-2644) [drlvm][kernel natives] bootclasspath's class loading failure produces wrong throwable
Date Wed, 13 Dec 2006 14:54:23 GMT
    [ http://issues.apache.org/jira/browse/HARMONY-2644?page=comments#action_12458148 ] 
            
Pavel Pervov commented on HARMONY-2644:
---------------------------------------

Although this test produces NoClassDefFoundError from bootstrap class loader, we may rewrite
it to produce VerifyError. In this case, RIs will throw VerifyError, but our implementation
will still throw ClassNotFoundException, hiding original cause of the failure.

I was always curious why java/lang/VMClassRegistry.findLoadedClass has ambiguous contract
for user class loader and for bootstrap class loader. For user class loader it only tries
to locate classes which are already loaded in that class loader. For bootstrap class loader
it not only looks up a class, but tries to load it if lookup failed.

I suggest separating these two functionalities for bootstrap class loader rewriting implementation
of kernel classes accordingly. This will fix reported issue.

> [drlvm][kernel natives] bootclasspath's class loading failure produces wrong throwable
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-2644
>                 URL: http://issues.apache.org/jira/browse/HARMONY-2644
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Vladimir Beliaev
>            Priority: Minor
>         Attachments: Test.java
>
>
> DRLVM throws ClassNotFoundException instead of NoClassDefFoundError if it fails to load
class from bootclasspath.
> I did not find the exact place in specification saying it is wrong behavior, still 
> 1. JVMS operates with NoClassDefFoundError only in case the loading process failed. 
> 2. both Sun & JRockit java throws NoClassDefFoundError from the test below.
> To reproduce the issue, please do the following:
> a) compile attached Test.java (this produces Test.class, SubClass.class and SuperClass.class)
> b) remove SuperClass.class 
> c) run test with SubClass in bootclasspath, e.g.
>   
>     $ ls -1 *.class
>     Test.class SubClass.class
>     $ java -Xbootclasspath/a:. Test
> The output on Reference Implementation:
>     PASSED: got NoClassDefFoundError...
>     Note: run Test with SubClass in bootclasspath...
> The output on Harmony DRLVM (with -showversion key):
>     Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundation
or its licensors, as applicable.
>     java version "1.5.0" 
>     pre-alpha : not complete or compatible
>     svn = r486063, (Dec 12 2006), Windows/ia32/msvc 1310, debug build
>     http://incubator.apache.org/harmony
>     FAILED: got ClassNotFoundException...
> Thanks
> Vladimir

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message