You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@openjpa.apache.org by Adrian Co <ac...@exist.com> on 2008/03/03 11:46:55 UTC

InstantiationException in latest OpenJPA build

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.


Re: InstantiationException in latest OpenJPA build

Posted by Patrick Linskey <pl...@gmail.com>.
>  Would you mind if I just create and assign a jira to you? It would help in
>  the tracking.

That'd be perfect -- go for it.

-Patrick

On Mon, Mar 3, 2008 at 11:04 PM, Adrian Co <ac...@exist.com> wrote:
>
>  No, its not really a very urgent issue. :)
>
>  Just wanted to try out the latest trunk and see if some minor issues I've
>  workaround got fixed, so I can deploy a new stable version in our repo.
>  Looking at the code, I was just as surprised that it didn't fail previously.
>
>  Would you mind if I just create and assign a jira to you? It would help in
>  the tracking.
>
>  Thanks for the help!
>
>
>
>
>  Patrick Linskey-2 wrote:
>  >
>  > 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 <ac...@exist.com> 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 <ac...@exist.com> 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
>  >
>  >
>
>  --
>  View this message in context: http://www.nabble.com/InstantiationException-in-latest-OpenJPA-build-tp15799949p15821456.html
>
>
> Sent from the OpenJPA Users mailing list archive at Nabble.com.
>
>



-- 
Patrick Linskey
202 669 5907

Re: InstantiationException in latest OpenJPA build

Posted by Adrian Co <ac...@exist.com>.
No, its not really a very urgent issue. :)
 
Just wanted to try out the latest trunk and see if some minor issues I've
workaround got fixed, so I can deploy a new stable version in our repo.
Looking at the code, I was just as surprised that it didn't fail previously.

Would you mind if I just create and assign a jira to you? It would help in
the tracking.

Thanks for the help!


Patrick Linskey-2 wrote:
> 
> 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 <ac...@exist.com> 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 <ac...@exist.com> 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
> 
> 

-- 
View this message in context: http://www.nabble.com/InstantiationException-in-latest-OpenJPA-build-tp15799949p15821456.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.


Re: InstantiationException in latest OpenJPA build

Posted by Patrick Linskey <pl...@gmail.com>.
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 <ac...@exist.com> 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 <ac...@exist.com> 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

Re: InstantiationException in latest OpenJPA build

Posted by Adrian Co <ac...@exist.com>.
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 <ac...@exist.com> 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.


Re: InstantiationException in latest OpenJPA build

Posted by Patrick Linskey <pl...@gmail.com>.
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 <ac...@exist.com> 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