DataNucleus JIRA is now in read-only mode. Raise any new issues in GitHub against the plugin that it applies to. DataNucleus JIRA will remain for the foreseeable future but will eventually be discontinued
Issue Details (XML | Word | Printable)

Key: NUCCORE-1041
Type: Bug Bug
Status: Closed Closed
Resolution: Duplicate
Priority: Major Major
Assignee: Unassigned
Reporter: Gerrit Volkenborn
Votes: 0
Watchers: 0

If you were logged in you would be able to see more operations.
DataNucleus Core

SCOOperationQueue.isRemoveFollowedByAddOnSameSCO will not reset iterator causing NoSuchElementException

Created: 07/May/13 03:49 PM   Updated: 15/May/13 09:31 AM   Resolved: 07/May/13 04:07 PM
Component/s: None
Affects Version/s: 3.2.0.release, 3.2.1, 3.2.2
Fix Version/s: None

Datastore: Oracle

 Description  « Hide
Introduced with fix for NUCCORE-1005 (commit ID 16693):

The Method isAddFollowedByRemoveOnSameSCO correctly resets the iterator independently of the "addThenRemove" flag,
but the method isRemoveFollowedByAddOnSameSCO only resets it if the "removeThenAdd" flag is false, causing:

        at java.util.ArrayList$
        at org.datanucleus.ExecutionContextImpl.flushSCOOperationsForBackingStore(

Sorry... tried my best to provide a test case with class B containing a set of another class A,
and then manipulating that set accordingly, but somehow I was unable to provoke this error so far! :/

However, by removing the if clause at line 194 and patching our datanucleus-core-3.2.2.jar, this issue was successfully eliminated.

Andy Jefferson added a comment - 07/May/13 04:07 PM
NUCCORE-1031, and SCOOperationQueue no longer exists besides. If its something else then you create a testcase

Andy Jefferson made changes - 07/May/13 04:07 PM
Field Original Value New Value
Status Open [ 1 ] Resolved [ 5 ]
Resolution Duplicate [ 3 ]
Andy Jefferson made changes - 15/May/13 09:31 AM
Status Resolved [ 5 ] Closed [ 6 ]