Thanks,
The trace looks like like it is being executed on the same thread as the client. For the
JMX protocol the client calls the MBean server and then the MBean server executes the test
runner MBean in the same thread. I will take a look at the JMX protocol later and see if I
find anything there. How to set IN_CONTAINER on the "server side", and what is
the significance of the Thread? TCCL?
On 17 Jan 2011, at 22:24, Aslak Knutsen wrote:
It is not suppose to be called on the server side. It sounds like
the
TestRunner is not set to run IN_CONTAINER mode, or it's being re
executed on the same Thread as the client ?
-aslak-
On Mon, Jan 17, 2011 at 8:29 PM, Kabir Khan <kabir.khan(a)jboss.com> wrote:
> I am trying to get the demos that I see working (sar, serviceloader, messaging, jms,
jms.client) running again as part of the smoke tests using the forked surefire plugin
which loads everything with modular classloading. On the client this works fine, but for
IN_CONTAINER tests I am seeing the stack trace at the end.
>
> The basic problem seems to be that Arquillian calls MessagingTestCase.getDeployment()
on the client as expected, however it then also calls it on the server once it is deployed
which causes this error. Does this really need to happen on the server? Is there a way to
disable this?
>
> This then causes ShrinkWrap's ContainerBase to use the TCCL, which is the
classloader of the deployment, to search for
rg.jboss.as.test.modular.utils.ShrinkWrapUtils which is part of the deployment.
URLPackageScanner.scanPackage() finds the url:
"vfs:/content/messaging-example.jar/org/jboss/as/test/modular/utils/" which
becomes "/content/messaging-example.jar/org/jboss/as/test/modular/utils/" before
it is added to the list passed in to handleArchiveByFile(). Since
"content/messaging-example.jar/org/jboss/as/test/modular/utils/" does not exist,
it all falls over.
>
> org.jboss.arquillian.impl.event.FiredEventException: java.lang.RuntimeException:
Could not get Deployment
> at
org.jboss.arquillian.impl.event.MapEventManager.fire(MapEventManager.java:68)
> at
org.jboss.arquillian.impl.context.AbstractEventContext.fire(AbstractEventContext.java:115)
> at
org.jboss.arquillian.impl.EventTestRunnerAdaptor.beforeClass(EventTestRunnerAdaptor.java:99)
> at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:165)
> at org.jboss.arquillian.junit.Arquillian$3$1.evaluate(Arquillian.java:189)
> at
org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(Arquillian.java:300)
> at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:185)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:128)
> at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
> at org.junit.runner.JUnitCore.run(JUnitCore.java:136)
> at
org.jboss.arquillian.junit.JUnitTestRunner.execute(JUnitTestRunner.java:69)
> at
org.jboss.arquillian.protocol.jmx.JMXTestRunner.runTestMethodInternal(JMXTestRunner.java:145)
> at
org.jboss.arquillian.protocol.jmx.JMXTestRunner.runTestMethodEmbedded(JMXTestRunner.java:114)
> 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:597)
> at
com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:93)
> at
com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:27)
> at
com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208)
> at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:120)
> at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:262)
> at javax.management.StandardMBean.invoke(StandardMBean.java:391)
> at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
> at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
> at
javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:288)
> at $Proxy18.runTestMethodEmbedded(Unknown Source)
> at
org.jboss.arquillian.protocol.jmx.JMXMethodExecutor.invoke(JMXMethodExecutor.java:91)
> at
org.jboss.arquillian.impl.handler.ContainerTestExecuter.callback(ContainerTestExecuter.java:50)
> at
org.jboss.arquillian.impl.handler.ContainerTestExecuter.callback(ContainerTestExecuter.java:40)
> at
org.jboss.arquillian.impl.event.MapEventManager.fire(MapEventManager.java:63)
> at
org.jboss.arquillian.impl.context.AbstractEventContext.fire(AbstractEventContext.java:115)
> at
org.jboss.arquillian.impl.EventTestRunnerAdaptor.test(EventTestRunnerAdaptor.java:160)
> at org.jboss.arquillian.junit.Arquillian$6.evaluate(Arquillian.java:247)
> at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
> at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:210)
> at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
> at org.jboss.arquillian.junit.Arquillian$5$1.evaluate(Arquillian.java:228)
> at
org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(Arquillian.java:300)
> at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:224)
> at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
> at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:166)
> at org.jboss.arquillian.junit.Arquillian$3$1.evaluate(Arquillian.java:189)
> at
org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(Arquillian.java:300)
> at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:185)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:128)
> at
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:59)
> at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:120)
> at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:103)
> at org.apache.maven.surefire.Surefire.run(Surefire.java:169)
> 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:597)
> at
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:339)
> at
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1011)
> 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:597)
> at org.jboss.modules.Module.run(Module.java:244)
> at org.jboss.modules.Main.main(Main.java:178)
> Caused by: java.lang.RuntimeException: Could not get Deployment
> at
org.jboss.arquillian.impl.DeploymentAnnotationArchiveGenerator.generateApplicationArchive(DeploymentAnnotationArchiveGenerator.java:65)
> at
org.jboss.arquillian.impl.ClientDeploymentGenerator.generate(ClientDeploymentGenerator.java:60)
> at
org.jboss.arquillian.impl.handler.ArchiveGenerator.callback(ArchiveGenerator.java:52)
> at
org.jboss.arquillian.impl.handler.ArchiveGenerator.callback(ArchiveGenerator.java:42)
> at
org.jboss.arquillian.impl.event.MapEventManager.fire(MapEventManager.java:63)
> ... 69 more
> Caused by: 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:597)
> at
org.jboss.arquillian.impl.DeploymentAnnotationArchiveGenerator.generateApplicationArchive(DeploymentAnnotationArchiveGenerator.java:57)
> ... 73 more
> Caused by: java.lang.RuntimeException: Error handling file
/content/messaging-example.jar/org/jboss/as/test/modular/utils
> at
org.jboss.shrinkwrap.impl.base.URLPackageScanner.handleArchiveByFile(URLPackageScanner.java:165)
> at
org.jboss.shrinkwrap.impl.base.URLPackageScanner.handle(URLPackageScanner.java:181)
> at
org.jboss.shrinkwrap.impl.base.URLPackageScanner.scanPackage(URLPackageScanner.java:132)
> at
org.jboss.shrinkwrap.impl.base.container.ContainerBase.addPackages(ContainerBase.java:1003)
> at
org.jboss.shrinkwrap.impl.base.container.ContainerBase.addClasses(ContainerBase.java:914)
> at
org.jboss.shrinkwrap.impl.base.container.ContainerBase.addClass(ContainerBase.java:855)
> at
org.jboss.as.test.modular.utils.ShrinkWrapUtils.addClasses(ShrinkWrapUtils.java:147)
> at
org.jboss.as.test.modular.utils.ShrinkWrapUtils.createJavaArchive(ShrinkWrapUtils.java:52)
> at
org.jboss.as.test.embedded.demos.messaging.MessagingTestCase.createDeployment(MessagingTestCase.java:76)
> ... 78 more
> Caused by: java.util.zip.ZipException: error in opening zip file
> at java.util.zip.ZipFile.open(Native Method)
> at java.util.zip.ZipFile.<init>(ZipFile.java:114)
> at java.util.zip.ZipFile.<init>(ZipFile.java:131)
> at
org.jboss.shrinkwrap.impl.base.URLPackageScanner.handleArchiveByFile(URLPackageScanner.java:149)
> ... 86 more
>
>