3 Replies Latest reply on Apr 5, 2018 11:01 AM by cpuffalt

    NoClassDefFoundError: JBossThreadFactory launching from Eclipse

    cpuffalt

      We have a very strange issue affecting two of our developers (the rest of the team with the same configuration do not have problems).  When they attempt to launch Arquillian tests from within Eclipse (via Run As > JUnit Test) they get the following exception:

       

      java.lang.NoClassDefFoundError: org/jboss/threads/JBossThreadFactory
           at org.jboss.as.controller.client.impl.ClientConfigurationImpl.createDefaultExecutor(ClientConfigurationImpl.java:55)
           at org.jboss.as.controller.client.impl.ClientConfigurationImpl.create(ClientConfigurationImpl.java:146)
           at org.jboss.as.controller.client.ModelControllerClient$Factory.create(ModelControllerClient.java:201)
           at org.jboss.as.arquillian.container.CommonDeployableContainer.start(CommonDeployableContainer.java:88)
           at org.arquillian.container.chameleon.controller.TargetController$2.call(TargetController.java:86)
           at org.arquillian.container.chameleon.controller.TargetController$2.call(TargetController.java:83)
           at org.arquillian.container.chameleon.controller.TargetController.lifecycle(TargetController.java:161)
           at org.arquillian.container.chameleon.controller.TargetController.start(TargetController.java:83)
           at org.arquillian.container.chameleon.ChameleonContainer.start(ChameleonContainer.java:116)
           at org.jboss.arquillian.container.impl.ContainerImpl.start(ContainerImpl.java:179)
           at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$8.perform(ContainerLifecycleController.java:137)
           at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$8.perform(ContainerLifecycleController.java:133)
           at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.forContainer(ContainerLifecycleController.java:208)
           at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.startContainer(ContainerLifecycleController.java:133)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke(Method.java:498)
           at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
           at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103)
           at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:90)
           at org.jboss.arquillian.container.impl.client.ContainerDeploymentContextHandler.createContainerContext(ContainerDeploymentContextHandler.java:54)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke(Method.java:498)
           at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
           at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:95)
           at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:133)
           at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:105)
           at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:62)
           at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$2.perform(ContainerLifecycleController.java:70)
           at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$2.perform(ContainerLifecycleController.java:64)
           at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.forEachSuiteContainer(ContainerLifecycleController.java:181)
           at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.startSuiteContainers(ContainerLifecycleController.java:64)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke(Method.java:498)
           at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
           at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103)
           at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:90)
           at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:133)
           at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:105)
           at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:62)
           at org.jboss.arquillian.container.test.impl.client.ContainerEventController.execute(ContainerEventController.java:83)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke(Method.java:498)
           at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
           at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103)
           at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:90)
           at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:69)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke(Method.java:498)
           at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
           at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:95)
           at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:133)
           at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:105)
           at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.beforeSuite(EventTestRunnerAdaptor.java:71)
           at org.jboss.arquillian.junit.AdaptorManager.initializeAdaptor(AdaptorManager.java:23)
           at org.jboss.arquillian.junit.AdaptorManagerWithNotifier.initializeAdaptor(AdaptorManagerWithNotifier.java:19)
           at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:109)
           at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
           at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
           at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:538)
           at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)
           at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)
           at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)
      Caused by: java.lang.ClassNotFoundException: org.jboss.threads.JBossThreadFactory
           at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
           at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
           at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
           at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
           ... 72 more

      The same tests run fine for these two developers via maven clean verify.  We are using arquillian-bom 1.4.0.Final in conjunction with arquillian-container-chameleon 1.0.0.CR2.  We've confirmed that ~/.m2/repository/org/jboss/threads/jboss-threads/2.0.0.GA/jboss-threads-2.0.0.GA.jar is not corrupt (though presumably a launch via Maven would also fail for these developers if this were the case.)

       

      Our arquillian.xml:

       

        xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
      
        
          
          target/arquillian-deployments
        
      
        
          
            jboss eap:6.4:remote
            localhost
            
            10019
          
        
      
      

       

      As mentioned above, this configuration works for all the other members of the team but does not for two of them.  The only difference we've been able to find is that the usernames for these two developers exceeds 8 characters but we can't see how that would be the cause...

       

      Any ideas on how to resolve this or get more information?

       

      Thanks!