Hi Mick, Just to add to what Adam said. A common cause for this problem is having a typo in your persistence unit name, or not having persistence.xml on the classpath. Looking at the code that is calling Persistence.createEntityManagerFactory() is the best place to start.
-mike On Fri, Mar 21, 2008 at 8:56 AM, Adam Hardy <[EMAIL PROTECTED]> wrote: > Hi Mick, > > from the fact that you don't show any code that instantiates the > entityManagerFactory variable, I assume you get this NPE because the > instantiation failed. So effectively the NPE is masking the real exception > from > JPA. You need to turn up the logging to reveal the disappearing > stacktrace, or > find the code that's calling Persistence.createEntityManagerFactory() and > make > sure you catch the exception and log the stacktrace. > > > Mick Knutson on 20/03/08 22:03, wrote: > > I have been trying to run this example: > > http://bill.dudney.net/roller/bill/entry/20070428 > > > > Now it seems, that when the testNG tests run, I get an NPE here: > > > > *DbUnitTestBase.java > > * > > @BeforeClass(groups = {"database"}) > > protected void loadSeedData() throws Exception { > > logger.debug("loadSeedData"); > > IDatabaseConnection dbunitConn = null; > > EntityManager em = null; > > try { > > *em = entityManagerFactory.createEntityManager();* > > > > > > Here is my error in *testng-results.xml* > > > > <test name="Command line test"> > > <class name="net.dudney.jpaund.domain.SimpleTest"> > > <test-method status="SKIP" signature="initDB()" name="initDB" > > is-config="true" duration-ms="0" started-at="2008-03-20T11:51:46Z" > > finished-at="2008-03-20T11:51:46Z"> > > </test-method> > > <test-method status="SKIP" signature="testCreateSiteUser()" > > name="testCreateSiteUser" duration-ms="0" > started-at="2008-03-20T11:51:46Z" > > finished-at="2008-03-20T11:51:46Z"> > > </test-method> > > <test-method status="FAIL" signature="loadSeedData()" > > name="loadSeedData" is-config="true" duration-ms="0" > > started-at="2008-03-20T11:51:46Z" finished-at="2008-03-20T11:51:46Z"> > > <exception class="java.lang.NullPointerException"> > > <full-stacktrace> > > <![CDATA[java.lang.NullPointerException > > at net.dudney.jpaund.domain.DbUnitTestBase.loadSeedData( > > DbUnitTestBase.java:43) > > 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.testng.internal.MethodHelper.invokeMethod(MethodHelper.java > :580) > > at org.testng.internal.Invoker.invokeConfigurationMethod( > Invoker.java > > :398) > > at org.testng.internal.Invoker.invokeConfigurations(Invoker.java > :145) > > at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:82) > > at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods( > > TestMethodWorker.java:166) > > at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java > :103) > > at org.testng.TestRunner.runWorkers(TestRunner.java:689) > > at org.testng.TestRunner.privateRun(TestRunner.java:566) > > at org.testng.TestRunner.run(TestRunner.java:466) > > at org.testng.SuiteRunner.runTest(SuiteRunner.java:301) > > at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:296) > > at org.testng.SuiteRunner.privateRun(SuiteRunner.java:276) > > at org.testng.SuiteRunner.run(SuiteRunner.java:191) > > at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:808) > > at org.testng.TestNG.runSuitesLocally(TestNG.java:776) > > at org.testng.TestNG.run(TestNG.java:701) > > at org.apache.maven.surefire.testng.TestNGExecutor.run( > > TestNGExecutor.java:62) > > at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute > ( > > TestNGDirectoryTestSuite.java:136) > > 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:338) > > at org.apache.maven.surefire.booter.SurefireBooter.main( > > SurefireBooter.java:997) > > ]]> > > </full-stacktrace> > > </exception> > > </test-method> > > </class> > > <class name="net.dudney.jpaund.dao.jpa.BaseDaoJpaTest"> > > <test-method status="PASS" signature="testGetUpdateObjects()" > > name="testGetUpdateObjects" duration-ms="13078" > > started-at="2008-03-20T11:50:42Z" finished-at="2008-03-20T11:50:55Z"> > > </test-method> > > <test-method status="PASS" > signature="testQueryBuildingRealClass()" > > name="testQueryBuildingRealClass" duration-ms="0" > > started-at="2008-03-20T11:50:55Z" finished-at="2008-03-20T11:50:55Z"> > > </test-method> > > <test-method status="PASS" > > signature="testQueryBuildingNullParameter()" > > name="testQueryBuildingNullParameter" duration-ms="0" > > started-at="2008-03-20T11:51:46Z" finished-at="2008-03-20T11:51:46Z"> > > </test-method> > > <test-method status="PASS" signature="testGetObject()" > > name="testGetObject" duration-ms="219" started-at="2008-03-20T11:51:45Z" > > finished-at="2008-03-20T11:51:46Z"> > > </test-method> > > <test-method status="PASS" > > signature="testSaveOrUpdateObjectExistingObject()" > > name="testSaveOrUpdateObjectExistingObject" duration-ms="12735" > > started-at="2008-03-20T11:51:20Z" finished-at="2008-03-20T11:51:33Z"> > > </test-method> > > <test-method status="PASS" signature="setUpSpring()" > > name="setUpSpring" is-config="true" duration-ms="1281" > > started-at="2008-03-20T11:50:13Z" finished-at="2008-03-20T11:50:14Z"> > > </test-method> > > <test-method status="PASS" > signature="testQueryBuildingEmptyParam()" > > name="testQueryBuildingEmptyParam" duration-ms="0" > > started-at="2008-03-20T11:50:30Z" finished-at="2008-03-20T11:50:30Z"> > > </test-method> > > <test-method status="PASS" signature="testDeleteObject()" > > name="testDeleteObject" duration-ms="13281" > > started-at="2008-03-20T11:51:07Z" finished-at="2008-03-20T11:51:20Z"> > > </test-method> > > <test-method status="PASS" > > signature="testQueryBuildingDoubleParamOrderBy()" > > name="testQueryBuildingDoubleParamOrderBy" duration-ms="0" > > started-at="2008-03-20T11:51:33Z" finished-at="2008-03-20T11:51:33Z"> > > </test-method> > > <test-method status="PASS" > > signature="testSaveOrUpdateObjectNewObject()" > > name="testSaveOrUpdateObjectNewObject" duration-ms="12203" > > started-at="2008-03-20T11:50:30Z" finished-at="2008-03-20T11:50:42Z"> > > </test-method> > > <test-method status="PASS" signature="testParameterQuery()" > > name="testParameterQuery" duration-ms="344" > > started-at="2008-03-20T11:51:07Z" finished-at="2008-03-20T11:51:07Z"> > > </test-method> > > <test-method status="PASS" signature="testFetchWithOrderBy()" > > name="testFetchWithOrderBy" duration-ms="12360" > > started-at="2008-03-20T11:51:33Z" finished-at="2008-03-20T11:51:45Z"> > > </test-method> > > <test-method status="PASS" > > signature="testQueryBuildingSingleParam()" > > name="testQueryBuildingSingleParam" duration-ms="0" > > started-at="2008-03-20T11:50:55Z" finished-at="2008-03-20T11:50:55Z"> > > </test-method> > > <test-method status="PASS" signature="testGetPKFieldName()" > > name="testGetPKFieldName" duration-ms="0" > started-at="2008-03-20T11:50:55Z" > > finished-at="2008-03-20T11:50:55Z"> > > </test-method> > > <test-method status="PASS" signature="testDeleteNonObject()" > > name="testDeleteNonObject" duration-ms="11140" > > started-at="2008-03-20T11:50:55Z" finished-at="2008-03-20T11:51:07Z"> > > </test-method> > > <test-method status="PASS" > signature="testSingleParameterQuery()" > > name="testSingleParameterQuery" duration-ms="1079" > > started-at="2008-03-20T11:50:29Z" finished-at="2008-03-20T11:50:30Z"> > > </test-method> > > <test-method status="PASS" signature="loadSeedData()" > > name="loadSeedData" is-config="true" duration-ms="15234" > > started-at="2008-03-20T11:50:14Z" finished-at="2008-03-20T11:50:29Z"> > > </test-method> > > <test-method status="PASS" > > signature="testQueryBuildingDoubleParam()" > > name="testQueryBuildingDoubleParam" duration-ms="0" > > started-at="2008-03-20T11:50:55Z" finished-at="2008-03-20T11:50:55Z"> > > </test-method> > > </class> > > </test> > > </suite> > > > > The strange thing is, most of the tests pass in *BaseDaoJpaTest.java* > > but not in *SimpleTest.java* > > > > I am very perplexed and want to fully understand how to get DBUnit, > Maven, > > and openJPA forking please. > > > >
