[ 
https://issues.apache.org/jira/browse/OPENJPA-315?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dain Sundstrom resolved OPENJPA-315.
------------------------------------

    Resolution: Fixed

Issue has been resolved and a test has been added

> 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.

Reply via email to