classworlds

uberjar broken in 1.1-alpha-1

Details

  • Type: Bug Bug
  • Status: Open Open
  • Priority: Major Major
  • Resolution: Unresolved
  • Affects Version/s: None
  • Fix Version/s: 1.0-beta-1
  • Component/s: uberjar
  • Labels:
    None
  • Number of attachments :
    5

Description

uberjar support seems to be broken at the moment: although building the source tree using maven works and the unit tests pass, attempting to run target/uberjar-test.jar fails:

[mhw@kremvax classworlds]$ java -jar target/uberjar-test.jar
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.codehaus.classworlds.uberjar.boot.Bootstrapper.bootstrap(Bootstrapper.java:217)
at org.codehaus.classworlds.uberjar.boot.Bootstrapper.main(Bootstrapper.java:122)
Caused by: java.lang.NoClassDefFoundError: java/lang/Object
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
at java.lang.ClassLoader.defineClass(ClassLoader.java:448)
at org.codehaus.classworlds.UberJarRealmClassLoader.loadClassDirect(UberJarRealmClassLoader.java:199)
at org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:255)
at org.codehaus.classworlds.Launcher.getMainClass(Launcher.java:157)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:280)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:243)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:416) at org.codehaus.classworlds.Launcher.main(Launcher.java:363)
... 6 more

  1. fix.patch
    02/Nov/04 10:50 AM
    2 kB
    Mark Wilkinson
  2. fix.patch
    02/Nov/04 10:48 AM
    1.0 kB
    Mark Wilkinson
  3. packaging.patch
    02/Nov/04 10:52 AM
    0.6 kB
    Mark Wilkinson
  4. test.patch
    02/Nov/04 10:50 AM
    1 kB
    Mark Wilkinson
  5. test.patch
    02/Nov/04 10:45 AM
    0.7 kB
    Mark Wilkinson

Activity

Hide
Mark Wilkinson added a comment -

Modification of unit test to verify that java.lang.Object is loadable through the uberjar classloader.

Show
Mark Wilkinson added a comment - Modification of unit test to verify that java.lang.Object is loadable through the uberjar classloader.
Hide
Mark Wilkinson added a comment -

Possible fix: the change to UberJarRealmClassLoader re-enables delegation of loadClass to the ClassRealm. We then need to make sure the ClassRealm created by the uberjar laucher has the system classloader as its foreignClassLoader.

Show
Mark Wilkinson added a comment - Possible fix: the change to UberJarRealmClassLoader re-enables delegation of loadClass to the ClassRealm. We then need to make sure the ClassRealm created by the uberjar laucher has the system classloader as its foreignClassLoader.
Hide
Mark Wilkinson added a comment -

patch as a context-diff

Show
Mark Wilkinson added a comment - patch as a context-diff
Hide
Mark Wilkinson added a comment -

patch as a context-diff

Show
Mark Wilkinson added a comment - patch as a context-diff
Hide
Mark Wilkinson added a comment -

While I'm at it, a fix for maven.xml to put [abcd].jar into the right directory when packaging the uberjar.

Show
Mark Wilkinson added a comment - While I'm at it, a fix for maven.xml to put [abcd].jar into the right directory when packaging the uberjar.

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated: