[JBoss Microcontainer Development] - Re: Testing Deployers with new Reflect + ClassPool
by flavia.rainone@jboss.com
"alesj" wrote : "flavia.rainone(a)jboss.com" wrote : that should return a class loaded by a BaseClassLoader, are returning a class loaded by the AppClassLoader.
| This sounds like the issue we had before -- classes "leaking" into system cl,
| where we should really only allow java.* packages through.
The point is that the failures I mentioned are being seen on sanity test cases, i.e., with ClassLoaders, no ClassPool involved.
"alesj" wrote : What's the "L loader" in TestScenario.cannotLoadClass(L loader, String className)?
| Could be by-passing some rules?
The L loader is just a generics abstraction for ClassLoaders and ClassPools, which allow me to write a test without being concerned whether it is going to be run against a ClassLoader or a ClassPool. The same test code is run with ClassLoaders (SanityTestCase) and with ClassPools (ClassPoolTestCase), thus enforcing that both behave the same way.
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4269306#4269306
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4269306
16 years, 4 months
[JBoss Microcontainer Development] - CL circularity failure
by alesj
My build server is complaining about this CL test:
| DelegateUnitTestCase.testAbstractFactoryConcurrent
| junit.framework.AssertionFailedError: Did not expect CNFE for org.jboss.test.classloader.delegate.support.b.TestFactoryImplementation from BaseClassLoader@a19b1de{B}
| at org.jboss.test.AbstractTestCase.failure(AbstractTestCase.java:429)
| at org.jboss.test.classloader.AbstractClassLoaderTest.assertLoadClass(AbstractClassLoaderTest.java:196)
| Please wait... Show stacktrace û
| ë Hide stacktrace
| junit.framework.AssertionFailedError: Did not expect CNFE for org.jboss.test.classloader.delegate.support.b.TestFactoryImplementation from BaseClassLoader@a19b1de{B}
| at org.jboss.test.AbstractTestCase.failure(AbstractTestCase.java:429)
| at org.jboss.test.classloader.AbstractClassLoaderTest.assertLoadClass(AbstractClassLoaderTest.java:196)
| at org.jboss.test.classloader.AbstractClassLoaderTest.assertLoadClass(AbstractClassLoaderTest.java:173)
| at org.jboss.test.classloader.AbstractClassLoaderTest.assertLoadClass(AbstractClassLoaderTest.java:158)
| at org.jboss.test.classloader.delegate.test.DelegateUnitTestCase.access$100(DelegateUnitTestCase.java:56)
| at org.jboss.test.classloader.delegate.test.DelegateUnitTestCase$2.run(DelegateUnitTestCase.java:301)
| Caused by: java.lang.ClassNotFoundException: Unexpected error during load of: org.jboss.test.classloader.delegate.support.b.TestFactoryImplementation, msg=org/jboss/test/classloader/delegate/support/b/TestFactoryImplementation
| at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:181)
| at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:265)
| at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1124)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:856)
| at org.jboss.classloader.spi.base.BaseClassLoader.doLoadClass(BaseClassLoader.java:499)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:444)
| at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
| at org.jboss.test.classloader.AbstractClassLoaderTest.assertLoadClass(AbstractClassLoaderTest.java:191)
| ... 4 more
| Caused by: java.lang.ClassCircularityError: org/jboss/test/classloader/delegate/support/b/TestFactoryImplementation
| at java.lang.ClassLoader.defineClass1(Native Method)
| at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
| at org.jboss.classloader.spi.base.BaseClassLoader.access$200(BaseClassLoader.java:66)
| at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:627)
| at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:586)
| at java.security.AccessController.doPrivileged(Native Method)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:585)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:562)
| at org.jboss.classloader.spi.base.BaseDelegateLoader.loadClass(BaseDelegateLoader.java:134)
| at org.jboss.classloader.spi.filter.FilteredDelegateLoader.loadClass(FilteredDelegateLoader.java:131)
| at org.jboss.classloader.spi.base.ClassLoadingTask$ThreadTask.run(ClassLoadingTask.java:455)
| at org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:267)
| at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:166)
| at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:265)
| at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1124)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:856)
| at org.jboss.classloader.spi.base.BaseClassLoader.doLoadClass(BaseClassLoader.java:499)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:444)
| at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
| at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
| at java.lang.ClassLoader.defineClass1(Native Method)
| at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
| at org.jboss.classloader.spi.base.BaseClassLoader.access$200(BaseClassLoader.java:66)
| at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:627)
| at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:586)
| at java.security.AccessController.doPrivileged(Native Method)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:585)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:562)
| at org.jboss.classloader.spi.base.BaseDelegateLoader.loadClass(BaseDelegateLoader.java:134)
| at org.jboss.classloader.spi.filter.FilteredDelegateLoader.loadClass(FilteredDelegateLoader.java:131)
| at org.jboss.classloader.spi.base.ClassLoadingTask$ThreadTask.run(ClassLoadingTask.java:455)
| at org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:267)
| at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:166)
| ... 11 more
|
All other tests pass.
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4269297#4269297
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4269297
16 years, 4 months
[Embedded JBoss Development] - SHRINKWRAP-104: Empty Directories
by ALRubinger
https://jira.jboss.org/jira/browse/SHRINKWRAP-104
I've added support for empty directories (and tests) in r3836. This is nice, because importers can now account for empty dirs as well.
The design I've used is a new Asset implementation:
public enum DirectoryAsset implements Asset {
|
| /**
| * Singleton Instance
| */
| INSTANCE;
|
| /**
| * {@inheritDoc}
| * @see org.jboss.shrinkwrap.api.Asset#openStream()
| */
| @Override
| public InputStream openStream()
| {
| // To signify that we've got nothing to back us (we're just a directory),
| // we use null. A stream backed by an empty byte array would be an
| // empty file, which is different.
| return null;
| }
|
| }
This sucks because:
1) We don't really obey the contract of "Asset", returning a null reference on "openStream"
2) The implementation relies upon "instanceof" runtime type checking to do things like creating directories in the exporter. Meaning we're checking for a specific implementation.
An alternate approach is to add:
Asset.isDirectory()
...to all Asset types. In this case "DirectoryAsset.openStream" would still return null, but we could do "Asset.isDirectory" instead of the runtime type checking.
Which is uglier to you?
S,
ALR
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4269221#4269221
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4269221
16 years, 4 months