What about this? https://issues.apache.org/jira/browse/OPENJPA-1996 http://lists.apple.com/archives/Java-dev/2010/May/msg00122.html
On Thu, Jun 14, 2012 at 2:08 PM, Jean-Louis MONTEIRO <jeano...@gmail.com> wrote: > 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