Interesting. Thing is, there is no no-args constructor. It looks like this isn't just a small anomaly, but rather a codepath that wasn't exercised in prior versions. I'll look into creating a test case that replicates the problem so it doesn't regress. Is this particularly urgent for any reason?
-Patrick On Mon, Mar 3, 2008 at 7:33 PM, Adrian Co <[EMAIL PROTECTED]> wrote: > > Unfortunately, the issue still exists. I've attached an updated stack trace > in [1]. I'll try to look at the diff if anything jumps out. :) > > Thanks for the quick reply! > > [1] > com.exist.eot.user.service.impl.GroupServiceImplTest Time elapsed: 1.141 > > > sec <<< ERROR! > org.unitils.core.UnitilsException: Unable to start transaction. Could not > retrieve PlatformTransactionManager from the Spring application context. > Make sure either to configure one, or use another Unitils transaction > manager. (e.g. SimpleTransactionManager, by setting the property > 'transactionManager.type' to 'simple') > at > > org.unitils.database.transaction.impl.SpringTransactionManager.startTransaction(SpringTransactionManager.java:86) > at > org.unitils.database.DatabaseModule.startTransaction(DatabaseModule.java:286) > at > > org.unitils.database.DatabaseModule$DatabaseTestListener.beforeTestSetUp(DatabaseModule.java:386) > at > > org.unitils.core.Unitils$UnitilsTestListener.beforeTestSetUp(Unitils.java:228) > at > > org.unitils.UnitilsJUnit4TestClassRunner$CustomTestClassMethodsRunner.createMethodRunner(UnitilsJUnit4TestClassRunner.java:142) > at > > org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66) > at > > org.unitils.UnitilsJUnit4TestClassRunner$CustomTestClassMethodsRunner.invokeTestMethod(UnitilsJUnit4TestClassRunner.java:155) > at > > org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35) > at > > org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42) > at > > org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34) > at > org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52) > at > > org.unitils.UnitilsJUnit4TestClassRunner.run(UnitilsJUnit4TestClassRunner.java:95) > at > org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62) > at > > org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140) > at > > org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127) > at org.apache.maven.surefire.Surefire.run(Surefire.java:177) > 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:585) > at > > org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:334) > at > org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:980) > Caused by: org.springframework.transaction.CannotCreateTransactionException: > Could not open JPA EntityManager for transaction; nested exception is > <openjpa-1.1.0-SNAPSHOT-r420667:633326M fatal general error> > > org.apache.openjpa.persistence.PersistenceException: An instance of the > class "class > org.apache.openjpa.persistence.PersistenceUnitInfoImpl$ClassResolverImpl" > could not be instantiated. Make sure the class has a public no-args > constructor. > at > > org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:379) > at > > org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:377) > at > > org.unitils.database.transaction.impl.SpringTransactionManager.startTransaction(SpringTransactionManager.java:82) > ... 21 more > Caused by: <openjpa-1.1.0-SNAPSHOT-r420667:633326M fatal general error> > > > org.apache.openjpa.persistence.PersistenceException: An instance of the > class "class > org.apache.openjpa.persistence.PersistenceUnitInfoImpl$ClassResolverImpl" > could not be instantiated. Make sure the class has a public no-args > constructor. > at > > org.apache.openjpa.kernel.AbstractBrokerFactory.loadPersistentTypes(AbstractBrokerFactory.java:333) > at > > org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:226) > at > > org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:188) > at > > org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142) > at > > org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192) > at > > org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145) > at > > org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56) > at > > org.springframework.orm.jpa.JpaTransactionManager.createEntityManagerForTransaction(JpaTransactionManager.java:396) > at > > org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:320) > ... 23 more > Caused by: org.apache.commons.lang.exception.NestableRuntimeException: An > instance of the class "class > org.apache.openjpa.persistence.PersistenceUnitInfoImpl$ClassResolverImpl" > could not be instantiated. Make sure the class has a public no-args > constructor. > at > > org.apache.openjpa.lib.conf.Configurations.newInstance(Configurations.java:227) > at > org.apache.openjpa.lib.conf.ObjectValue.newInstance(ObjectValue.java:109) > at > org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:102) > at > org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83) > at > > org.apache.openjpa.conf.OpenJPAConfigurationImpl.getClassResolverInstance(OpenJPAConfigurationImpl.java:566) > at > > org.apache.openjpa.meta.AbstractCFMetaDataFactory.getPersistentTypeNames(AbstractCFMetaDataFactory.java:601) > at > > org.apache.openjpa.persistence.PersistenceMetaDataFactory.load(PersistenceMetaDataFactory.java:188) > at > > org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:475) > at > > org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:295) > at org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:245) > at org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:216) > at org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:184) > at > > org.apache.openjpa.enhance.ManagedClassSubclasser.prepareUnenhancedClasses(ManagedClassSubclasser.java:121) > 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:585) > at > > org.apache.openjpa.kernel.AbstractBrokerFactory.loadPersistentTypes(AbstractBrokerFactory.java:317) > ... 31 more > Caused by: java.lang.InstantiationException: > org.apache.openjpa.persistence.PersistenceUnitInfoImpl$ClassResolverImpl > at java.lang.Class.newInstance0(Class.java:335) > at java.lang.Class.newInstance(Class.java:303) > at > org.apache.openjpa.lib.util.J2DoPrivHelper$11.run(J2DoPrivHelper.java:343) > at java.security.AccessController.doPrivileged(Native Method) > at > > org.apache.openjpa.lib.conf.Configurations.newInstance(Configurations.java:221) > ... 48 more > > > > > > Patrick Linskey-2 wrote: > > > > Hi, > > > > I just checked in a change that might fix this issue with r633326. I > > didn't do any validation or testing; I just made a private class > > public. Looks like the issue is a combination of reflection and > > security controls; hopefully this blind stab in the dark will resolve > > it. If not, let us know and we'll take a closer look. > > > > -Patrick > > > > On Mon, Mar 3, 2008 at 2:46 AM, Adrian Co <[EMAIL PROTECTED]> wrote: > >> > >> Hi, > >> > >> I've updated to the latest OpenJPA version in trunk (rev 633027) and > >> built > >> it with test disabled (-Dmaven.test.skip=true) and ran it against my > >> unit > >> test cases. It failed with the exception in [1]. Last working version I > >> used > >> was rev 613030, which is also based on 1.1.0-SNAPSHOT. Is this a bug or > >> did > >> any configuration change occurred? Let me know if you need any other > >> details. > >> > >> Thanks for any help! :) > >> > >> Regards, > >> Adrian Co > >> > >> [1] > >> com.exist.eot.user.service.impl.GroupServiceImplTest Time elapsed: > >> 1.109 > >> sec <<< ERROR! > >> org.unitils.core.UnitilsException: Unable to start transaction. Could > >> not > >> retrieve PlatformTransactionManager from the Spring application context. > >> Make sure either to configure one, or use another Unitils transaction > >> manager. (e.g. SimpleTransactionManager, by setting the property > >> 'transactionManager.type' to 'simple') > >> at > >> > >> > org.unitils.database.transaction.impl.SpringTransactionManager.startTransaction(SpringTransactionManager.java:86) > >> at > >> > >> > org.unitils.database.DatabaseModule.startTransaction(DatabaseModule.java:286) > >> at > >> > >> > org.unitils.database.DatabaseModule$DatabaseTestListener.beforeTestSetUp(DatabaseModule.java:386) > >> at > >> > >> > org.unitils.core.Unitils$UnitilsTestListener.beforeTestSetUp(Unitils.java:228) > >> at > >> > >> > org.unitils.UnitilsJUnit4TestClassRunner$CustomTestClassMethodsRunner.createMethodRunner(UnitilsJUnit4TestClassRunner.java:142) > >> at > >> > >> > org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66) > >> at > >> > >> > org.unitils.UnitilsJUnit4TestClassRunner$CustomTestClassMethodsRunner.invokeTestMethod(UnitilsJUnit4TestClassRunner.java:155) > >> at > >> > >> > org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35) > >> at > >> > >> > org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42) > >> at > >> > >> > org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34) > >> at > >> org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52) > >> at > >> > >> > org.unitils.UnitilsJUnit4TestClassRunner.run(UnitilsJUnit4TestClassRunner.java:95) > >> at > >> > >> > org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62) > >> at > >> > >> > org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140) > >> at > >> > >> > org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127) > >> at org.apache.maven.surefire.Surefire.run(Surefire.java:177) > >> 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:585) > >> at > >> > >> > org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:334) > >> at > >> > >> > org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:980) > >> Caused by: > >> org.springframework.transaction.CannotCreateTransactionException: > >> Could not open JPA EntityManager for transaction; nested exception is > >> <openjpa-1.1.0-SNAPSHOT-r420667:632486M fatal general error> > >> org.apache.openjpa.persistence.PersistenceException: An instance of the > >> class "class > >> > >> org.apache.openjpa.persistence.PersistenceUnitInfoImpl$ClassResolverImpl" > >> could not be instantiated. Make sure the class has a public no-args > >> constructor. > >> at > >> > >> > org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:379) > >> at > >> > >> > org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:377) > >> at > >> > >> > org.unitils.database.transaction.impl.SpringTransactionManager.startTransaction(SpringTransactionManager.java:82) > >> ... 21 more > >> Caused by: <openjpa-1.1.0-SNAPSHOT-r420667:632486M fatal general error> > >> org.apache.openjpa.persistence.PersistenceException: An instance of the > >> class "class > >> > >> org.apache.openjpa.persistence.PersistenceUnitInfoImpl$ClassResolverImpl" > >> could not be instantiated. Make sure the class has a public no-args > >> constructor. > >> at > >> > >> > org.apache.openjpa.kernel.AbstractBrokerFactory.loadPersistentTypes(AbstractBrokerFactory.java:333) > >> at > >> > >> > org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:226) > >> at > >> > >> > org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:188) > >> at > >> > >> > org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142) > >> at > >> > >> > org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192) > >> at > >> > >> > org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145) > >> at > >> > >> > org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56) > >> at > >> > >> > org.springframework.orm.jpa.JpaTransactionManager.createEntityManagerForTransaction(JpaTransactionManager.java:396) > >> at > >> > >> > org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:320) > >> ... 23 more > >> Caused by: org.apache.commons.lang.exception.NestableRuntimeException: > >> An > >> instance of the class "class > >> > >> org.apache.openjpa.persistence.PersistenceUnitInfoImpl$ClassResolverImpl" > >> could not be instantiated. Make sure the class has a public no-args > >> constructor. > >> at > >> > >> > org.apache.openjpa.lib.conf.Configurations.newInstance(Configurations.java:227) > >> at > >> > >> org.apache.openjpa.lib.conf.ObjectValue.newInstance(ObjectValue.java:109) > >> at > >> > >> org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:102) > >> at > >> org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83) > >> at > >> > >> > org.apache.openjpa.conf.OpenJPAConfigurationImpl.getClassResolverInstance(OpenJPAConfigurationImpl.java:566) > >> at > >> > >> > org.apache.openjpa.meta.AbstractCFMetaDataFactory.getPersistentTypeNames(AbstractCFMetaDataFactory.java:601) > >> at > >> > >> > org.apache.openjpa.persistence.PersistenceMetaDataFactory.load(PersistenceMetaDataFactory.java:188) > >> at > >> > >> > org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:475) > >> at > >> > >> > org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:295) > >> at > >> org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:245) > >> at > >> org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:216) > >> at > >> org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:184) > >> at > >> > >> > org.apache.openjpa.enhance.ManagedClassSubclasser.prepareUnenhancedClasses(ManagedClassSubclasser.java:121) > >> 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:585) > >> at > >> > >> > org.apache.openjpa.kernel.AbstractBrokerFactory.loadPersistentTypes(AbstractBrokerFactory.java:317) > >> ... 31 more > >> Caused by: java.lang.InstantiationException: > >> org.apache.openjpa.persistence.PersistenceUnitInfoImpl$ClassResolverImpl > >> at java.lang.Class.newInstance0(Class.java:335) > >> at java.lang.Class.newInstance(Class.java:303) > >> at > >> > >> org.apache.openjpa.lib.util.J2DoPrivHelper$11.run(J2DoPrivHelper.java:343) > >> at java.security.AccessController.doPrivileged(Native Method) > >> at > >> > >> > org.apache.openjpa.lib.conf.Configurations.newInstance(Configurations.java:221) > >> ... 48 more > >> -- > >> View this message in context: > >> > http://www.nabble.com/InstantiationException-in-latest-OpenJPA-build-tp15799949p15799949.html > >> Sent from the OpenJPA Users mailing list archive at Nabble.com. > >> > >> > > > > > > > > -- > > Patrick Linskey > > 202 669 5907 > > > > > > -- > View this message in context: > http://www.nabble.com/InstantiationException-in-latest-OpenJPA-build-tp15799949p15819702.html > > > Sent from the OpenJPA Users mailing list archive at Nabble.com. > > -- Patrick Linskey 202 669 5907
