You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Guillaume Chauvet (JIRA)" <ji...@apache.org> on 2013/02/18 22:49:13 UTC

[jira] [Commented] (OPENJPA-2328) NPE caused by one too many calls on the iterator inside the library.

    [ https://issues.apache.org/jira/browse/OPENJPA-2328?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13580848#comment-13580848 ] 

Guillaume Chauvet commented on OPENJPA-2328:
--------------------------------------------

Please, can someone may check the correctness of our patch ? (fix + junit)
                
> NPE caused by one too many calls on the iterator inside the library.
> --------------------------------------------------------------------
>
>                 Key: OPENJPA-2328
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2328
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jdbc
>    Affects Versions: 2.1.1, 2.2.0, 2.2.1
>            Reporter: Guillaume Chauvet
>            Priority: Blocker
>         Attachments: OPENJPA-2328-JUNIT.patch, OPENJPA-2328.patch
>
>
> We have just discovered a critical bug in the library preventing our program from operating. The problem comes from an NPE generated when there is one too many calls on the iterator of a collection, causing this type of stack trace:
> <openjpa-2.2.1-r422266:1396819 fatal store error> org.apache.openjpa.persistence.RollbackException: null
> 	at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:594)
> 	at com.qualiformed.qualinax.platform.dao.GenericDAO.update(GenericDAO.java:136)
> 	at com.qualiformed.qualinax.platform.dao.SettingDAO.persist(SettingDAO.java:54)
> 	at com.qualiformed.qualinax.application.QualinaxConfig.save(QualinaxConfig.java:509)
> 	at com.qualiformed.qualinax.application.model.LancerQualimagiQModel.supprimerSettingsQualimagiQ(LancerQualimagiQModel.java:103)
> 	at com.qualiformed.qualinax.application.controller.QualimagiqController.setupAnalysis(QualimagiqController.java:371)
> 	at com.qualiformed.qualinax.application.controller.QualimagiqProcessor$8$1.doInBackground(QualimagiqProcessor.java:449)
> 	at com.qualiformed.qualinax.application.controller.QualimagiqProcessor$8$1.doInBackground(QualimagiqProcessor.java:446)
> 	at javax.swing.SwingWorker$1.call(SwingWorker.java:277)
> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> 	at javax.swing.SwingWorker.run(SwingWorker.java:316)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:662)
> Caused by: <openjpa-2.2.1-r422266:1396819 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: null
> 	at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:2000)
> 	at org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:81)
> 	at org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1516)
> 	at org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:933)
> 	at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:570)
> 	... 14 more
> Caused by: java.util.NoSuchElementException
> 	at java.util.HashMap$HashIterator.nextEntry(HashMap.java:796)
> 	at java.util.HashMap$KeyIterator.next(HashMap.java:828)
> 	at org.apache.openjpa.jdbc.meta.strats.HandlerRelationMapTableFieldStrategy.update(HandlerRelationMapTableFieldStrategy.java:320)
> 	at org.apache.openjpa.jdbc.meta.FieldMapping.update(FieldMapping.java:699)
> 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.update(AbstractUpdateManager.java:343)
> 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.update(AbstractUpdateManager.java:370)
> 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.populateRowManager(AbstractUpdateManager.java:174)
> 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:97)
> 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:78)
> 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:735)
> 	at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:131)
> 	at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2176)
> 	at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2074)
> 	at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1992)
> 	... 18 more
> We have created a patch to correct the problem, but I haven't had the time to create the unitary test to reproduce it.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira