[
https://issues.apache.org/jira/browse/OPENJPA-315?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12523427
]
Dain Sundstrom commented on OPENJPA-315:
----------------------------------------
Sorry. I was responding to your comment "Marking as resolved under the
assumption that the IDs are properly assigned as tested elsewhere", which to me
implied that you assumed there was already a test for this bug so my patch
wasn't necessary. Again, sorry.
> Unenhanced generated id field of a primitive wrapper type causes NPE
> --------------------------------------------------------------------
>
> Key: OPENJPA-315
> URL: https://issues.apache.org/jira/browse/OPENJPA-315
> Project: OpenJPA
> Issue Type: Bug
> Reporter: Dain Sundstrom
> Priority: Critical
> Fix For: 1.0.0
>
> Attachments: OPENJPA-315.patch
>
>
> Unenhanced generated id field of a primitive wrapper type causes NPE because
> the field value is null. This bug only occurs when the id field is an object
> type as primitive fields are automatically initialized to 0. I believe this
> is a critical bug because when using a primitive field the system appears to
> work but the id field is always 0 which could cause data corruption. The
> following stack trace shows the bug:
> <openjpa-0.0.0-r420667:564688M nonfatal general error>
> org.apache.openjpa.persistence.PersistenceException: null
> at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2437)
> at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2251)
> at
> org.apache.openjpa.kernel.DelegatingBroker.persist(DelegatingBroker.java:1010)
> at
> org.apache.openjpa.persistence.EntityManagerImpl.persist(EntityManagerImpl.java:541)
> at
> org.apache.openjpa.enhance.AbstractUnenhancedClassTest.getObjectIdHelper(AbstractUnenhancedClassTest.java:134)
> at
> org.apache.openjpa.enhance.AbstractUnenhancedClassTest.testGetObjectIdOnOpenJPAType(AbstractUnenhancedClassTest.java:115)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40)
> Caused by: java.lang.NullPointerException
> at
> org.apache.openjpa.util.ApplicationIds.fromPKValues(ApplicationIds.java:152)
> at
> org.apache.openjpa.enhance.ReflectingPersistenceCapable.pcNewObjectIdInstance(ReflectingPersistenceCapable.java:257)
> at
> org.apache.openjpa.util.ApplicationIds.create(ApplicationIds.java:384)
> at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2405)
> ... 23 more
> The attached patch reproduces this bug. The patch is a clone of
> TestUnenhancedFieldAccess that simply changes the id field to type Integer.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.