norm icon indicating copy to clipboard operation
norm copied to clipboard

added protection from NPE

Open Alexander198961 opened this issue 8 years ago • 3 comments

Got Npe during database.insert(user); operation after added protection from npe seems working for me

Alexander198961 avatar Dec 12 '17 16:12 Alexander198961

I'd rather figure out why we got the npe in the first place. Can you help me duplicate the error?

ccleve avatar Dec 13 '17 01:12 ccleve

There is Exception: com.dieselpoint.norm.DbException: java.lang.NullPointerException at com.dieselpoint.norm.sqlmakers.StandardSqlMaker.populateGeneratedKey(StandardSqlMaker.java:359) at com.dieselpoint.norm.Query.execute(Query.java:339) at com.dieselpoint.norm.Query.insert(Query.java:256) at com.dieselpoint.norm.Database.insert(Database.java:130) at com.slice.core.scheduler.SchedulerLinkDelinkTest.testLinkMailboxThenPaidProxys(SchedulerLinkDelinkTest.java:152) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at com.slice.core.testkit.ChainStatement$1.run(ChainStatement.java:23) at com.slice.core.testkit.ChainStatement.evaluate(ChainStatement.java:34) at com.slice.core.testkit.ChainStatement.evaluate(ChainStatement.java:37) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) Caused by: java.lang.NullPointerException at com.dieselpoint.norm.sqlmakers.StandardSqlMaker.populateGeneratedKey(StandardSqlMaker.java:334) ... 33 more

so maybe will try to write junit test for this case

Alexander198961 avatar Dec 13 '17 16:12 Alexander198961

Looks like the line prop.dataType.isAssignable ... is causing the problem. Somehow the dataType isn't getting populated. Please post the code that is failing so we can see the issue.

ccleve avatar May 26 '18 21:05 ccleve