Hello guys, Romain and I noticed a strange error with
On Linux and Windows, it works fine but under Mac OS we get an error (here after). javax.enterprise.inject.CreationException: java.lang.LinkageError: loader (instance of sun/misc/Launcher$ExtClassLoader): attempted duplicate class definition for name: "sun/security/pkcs11/SunPKCS11" at org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:200) at org.apache.webbeans.context.DependentContext.getInstance(DependentContext.java:69) at org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:192) at org.apache.webbeans.container.BeanManagerImpl.getReference(BeanManagerImpl.java:971) at org.apache.webbeans.container.BeanManagerImpl.getInjectableReference(BeanManagerImpl.java:844) at org.apache.webbeans.inject.OWBInjector.getInjectedObjectReference(OWBInjector.java:250) at org.apache.webbeans.inject.OWBInjector.inject(OWBInjector.java:146) at org.apache.webbeans.inject.OWBInjector.inject(OWBInjector.java:94) at org.apache.openejb.junit.ApplicationComposer$DeployApplication.evaluate(ApplicationComposer.java:308) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:69) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:48) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) at org.junit.runners.ParentRunner.run(ParentRunner.java:292) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104) 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.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164) at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:172) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:78) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:70) Caused by: java.lang.LinkageError: loader (instance of sun/misc/Launcher$ExtClassLoader): attempted duplicate class definition for name: "sun/security/pkcs11/SunPKCS11" at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at java.lang.ClassLoader.loadClass(ClassLoader.java:295) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at sun.security.jca.ProviderConfig$4.run(ProviderConfig.java:253) at java.security.AccessController.doPrivileged(Native Method) at sun.security.jca.ProviderConfig.doLoadProvider(ProviderConfig.java:244) at sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:224) at sun.security.jca.ProviderList.getProvider(ProviderList.java:215) at sun.security.jca.ProviderList.getService(ProviderList.java:313) at sun.security.jca.GetInstance.getInstance(GetInstance.java:140) at java.security.Security.getImpl(Security.java:659) at java.security.MessageDigest.getInstance(MessageDigest.java:129) at org.hsqldb.lib.MD5.digest(Unknown Source) at org.hsqldb.lib.MD5.digest(Unknown Source) at org.hsqldb.lib.MD5.encode(Unknown Source) at org.hsqldb.rights.User.setPassword(Unknown Source) at org.hsqldb.rights.UserManager.createUser(Unknown Source) at org.hsqldb.rights.UserManager.createFirstUser(Unknown Source) at org.hsqldb.Database.reopen(Unknown Source) at org.hsqldb.Database.open(Unknown Source) at org.hsqldb.DatabaseManager.getDatabase(Unknown Source) at org.hsqldb.DatabaseManager.newSession(Unknown Source) at org.hsqldb.jdbc.JDBCConnection.<init>(Unknown Source) at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source) at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source) at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38) at org.apache.commons.dbcp.managed.LocalXAConnectionFactory.createConnection(LocalXAConnectionFactory.java:62) at org.apache.commons.dbcp.managed.PoolableManagedConnectionFactory.makeObject(PoolableManagedConnectionFactory.java:103) at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556) at org.apache.commons.dbcp.managed.BasicManagedDataSource.createPoolableConnectionFactory(BasicManagedDataSource.java:196) at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388) at org.apache.openejb.resource.jdbc.BasicManagedDataSource.createDataSource(BasicManagedDataSource.java:203) at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) at org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection(DelegatingDataSource.java:110) at org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(DecoratingDataSource.java:87) at org.apache.openjpa.jdbc.sql.DBDictionaryFactory.newDBDictionary(DBDictionaryFactory.java:91) at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:603) at org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1510) at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:518) at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:443) at org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:104) at org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68) at org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83) at org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:968) at org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:959) at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:638) at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:203) at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:156) at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:227) at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:154) at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:60) at org.apache.openejb.assembler.classic.ReloadableEntityManagerFactory.createEntityManager(ReloadableEntityManagerFactory.java:109) at org.apache.openejb.persistence.ResourceLocalCdiEmTest$EMFProducer.em(ResourceLocalCdiEmTest.java:97) 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.webbeans.inject.InjectableMethods.doInjection(InjectableMethods.java:139) at org.apache.webbeans.component.ProducerMethodBean.createDefaultInstance(ProducerMethodBean.java:193) at org.apache.webbeans.component.ProducerMethodBean.createInstance(ProducerMethodBean.java:155) at org.apache.webbeans.component.AbstractOwbBean.createNewInstance(AbstractOwbBean.java:234) at org.apache.webbeans.portable.creation.AbstractProducer.produce(AbstractProducer.java:79) at org.apache.webbeans.component.InjectionTargetWrapper.produce(InjectionTargetWrapper.java:136) at org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:181) at org.apache.webbeans.context.DependentContext.getInstance(DependentContext.java:69) at org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:192) at org.apache.webbeans.container.BeanManagerImpl.getReference(BeanManagerImpl.java:971) at org.apache.webbeans.container.BeanManagerImpl.getInjectableReference(BeanManagerImpl.java:844) at org.apache.webbeans.inject.AbstractInjectable.inject(AbstractInjectable.java:136) at org.apache.webbeans.inject.InjectableField.doInjection(InjectableField.java:59) at org.apache.webbeans.component.AbstractInjectionTargetBean.injectField(AbstractInjectionTargetBean.java:384) at org.apache.webbeans.component.AbstractInjectionTargetBean.injectFields(AbstractInjectionTargetBean.java:321) at org.apache.webbeans.portable.creation.InjectionTargetProducer.inject(InjectionTargetProducer.java:94) at org.apache.webbeans.component.InjectionTargetWrapper.inject(InjectionTargetWrapper.java:79) at org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:182) ... 29 more Seems like Mac OS is providing a different implementation of "sun/security/pkcs11/SunPKCS11". Does anyone reproduce that issue? The issue comes with the following test: org.apache.openejb.persistence.ResourceLocalCdiEmTest To reproduce under Mac OS, just go to container/openejb-core and run mvn test -Dtest=ResourceLocalCdiEmTest Thanks, Jean-Louis
