Details
-
Bug
-
Resolution: Done
-
Major
-
None
-
None
-
None
Description
This:
archive.add(new BasicPath("somethingelse"), new ClassAsset(String.class));
...results in:
java.lang.IllegalArgumentException: ClassLoader must be specified
at org.jboss.declarchive.impl.base.Validate.notNull(Validate.java:44)
at org.jboss.declarchive.impl.base.asset.ClassLoaderAsset.<init>(ClassLoaderAsset.java:62)
at org.jboss.declarchive.impl.base.asset.ClassAsset.getStream(ClassAsset.java:71)
at org.jboss.declarchive.impl.vfs.VfsMemoryArchiveImpl.add(VfsMemoryArchiveImpl.java:144)
at org.jboss.declarchive.impl.vfs.VfsMemoryArchiveImpl.add(VfsMemoryArchiveImpl.java:1)
at
This is due to Class.getClassLoader() contract specifying that the bootstrap CL may be represented by null in some (ie. Sun) JDKs.
http://java.sun.com/javase/6/docs/api/java/lang/Class.html#getClassLoader%28%29
Add a test to cover and fix.