Revision: 14057
http://datanucleus.svn.sourceforge.net/datanucleus/?rev=14057&view=rev
Author: andy_jefferson
Date: 2012-01-18 09:17:07 +0000 (Wed, 18 Jan 2012)
Log Message:
-----------
[NUCCORE-803] Change ordering of clear/removeAll delegate update so it is always in step with makeDirty placement
Modified Paths:
--------------
platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/ArrayList.java
platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Collection.java
platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/HashMap.java
platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/HashSet.java
platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Hashtable.java
platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/LinkedHashMap.java
platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/LinkedHashSet.java
platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/LinkedList.java
platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/List.java
platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Map.java
platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/PriorityQueue.java
platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Properties.java
platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Queue.java
platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Set.java
platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/SortedMap.java
platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/SortedSet.java
platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Stack.java
platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/TreeMap.java
platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/TreeSet.java
platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Vector.java
Modified: platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/ArrayList.java
===================================================================
--- platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/ArrayList.java 2012-01-17 18:28:39 UTC (rev 14056)
+++ platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/ArrayList.java 2012-01-18 09:17:07 UTC (rev 14057)
@@ -794,6 +794,7 @@
public synchronized void clear()
{
makeDirty();
+ delegate.clear();
if (backingStore != null)
{
@@ -806,7 +807,6 @@
backingStore.clear(ownerSM);
}
}
- delegate.clear();
}
/**
@@ -921,6 +921,8 @@
loadFromStore();
}
+ boolean delegateSuccess = delegate.removeAll(elements);
+
if (backingStore != null)
{
boolean backingSuccess = true;
@@ -951,12 +953,11 @@
}
}
- delegate.removeAll(elements);
return backingSuccess;
}
else
{
- return delegate.removeAll(elements);
+ return delegateSuccess;
}
}
Modified: platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Collection.java
===================================================================
--- platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Collection.java 2012-01-17 18:28:39 UTC (rev 14056)
+++ platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Collection.java 2012-01-18 09:17:07 UTC (rev 14057)
@@ -636,6 +636,7 @@
public synchronized void clear()
{
makeDirty();
+ delegate.clear();
if (backingStore != null)
{
@@ -648,7 +649,6 @@
backingStore.clear(ownerSM);
}
}
- delegate.clear();
}
/**
@@ -713,10 +713,10 @@
/**
* Method to remove a Collection of elements.
- * @param c The collection to remove
+ * @param elements The collection to remove
* @return Whether they were removed successfully.
**/
- public synchronized boolean removeAll(java.util.Collection c)
+ public synchronized boolean removeAll(java.util.Collection elements)
{
makeDirty();
@@ -725,10 +725,12 @@
loadFromStore();
}
+ boolean delegateSuccess = delegate.removeAll(elements);
+
if (ownerSM != null && ownerSM.getExecutionContext().getManageRelations())
{
// Relationship management
- Iterator iter = c.iterator();
+ Iterator iter = elements.iterator();
RelationshipManager relMgr = ownerSM.getExecutionContext().getRelationshipManager(ownerSM);
while (iter.hasNext())
{
@@ -744,7 +746,7 @@
if (SCOUtils.useQueuedUpdate(queued, ownerSM))
{
backingSuccess = false;
- for (Object element : c)
+ for (Object element : elements)
{
if (contains(element))
{
@@ -757,7 +759,7 @@
{
try
{
- backingSuccess = backingStore.removeAll(ownerSM, c, size);
+ backingSuccess = backingStore.removeAll(ownerSM, elements, size);
}
catch (NucleusDataStoreException dse)
{
@@ -766,12 +768,11 @@
}
}
- delegate.removeAll(c);
return backingSuccess;
}
else
{
- return delegate.removeAll(c);
+ return delegateSuccess;
}
}
Modified: platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/HashMap.java
===================================================================
--- platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/HashMap.java 2012-01-17 18:28:39 UTC (rev 14056)
+++ platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/HashMap.java 2012-01-18 09:17:07 UTC (rev 14057)
@@ -517,6 +517,7 @@
public void clear()
{
makeDirty();
+ delegate.clear();
if (backingStore != null)
{
@@ -529,7 +530,6 @@
backingStore.clear(ownerSM);
}
}
- delegate.clear();
}
/**
Modified: platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/HashSet.java
===================================================================
--- platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/HashSet.java 2012-01-17 18:28:39 UTC (rev 14056)
+++ platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/HashSet.java 2012-01-18 09:17:07 UTC (rev 14057)
@@ -595,6 +595,7 @@
public void clear()
{
makeDirty();
+ delegate.clear();
if (backingStore != null)
{
@@ -607,7 +608,6 @@
backingStore.clear(ownerSM);
}
}
- delegate.clear();
}
/**
@@ -672,10 +672,10 @@
/**
* Method to remove all elements from the collection from the HashSet.
- * @param c The collection of elements to remove
+ * @param elements The collection of elements to remove
* @return Whether it was removed ok.
- **/
- public boolean removeAll(java.util.Collection c)
+ */
+ public boolean removeAll(java.util.Collection elements)
{
makeDirty();
@@ -684,10 +684,12 @@
loadFromStore();
}
+ boolean delegateSuccess = delegate.removeAll(elements);
+
if (ownerSM != null && ownerSM.getExecutionContext().getManageRelations())
{
// Relationship management
- Iterator iter = c.iterator();
+ Iterator iter = elements.iterator();
RelationshipManager relMgr = ownerSM.getExecutionContext().getRelationshipManager(ownerSM);
while (iter.hasNext())
{
@@ -703,7 +705,7 @@
if (SCOUtils.useQueuedUpdate(queued, ownerSM))
{
backingSuccess = false;
- for (Object element : c)
+ for (Object element : elements)
{
if (contains(element))
{
@@ -716,7 +718,7 @@
{
try
{
- backingSuccess = backingStore.removeAll(ownerSM, c, size);
+ backingSuccess = backingStore.removeAll(ownerSM, elements, size);
}
catch (NucleusDataStoreException dse)
{
@@ -725,12 +727,11 @@
}
}
- delegate.removeAll(c); // Remove from the delegate too
return backingSuccess;
}
else
{
- return delegate.removeAll(c);
+ return delegateSuccess;
}
}
Modified: platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Hashtable.java
===================================================================
--- platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Hashtable.java 2012-01-17 18:28:39 UTC (rev 14056)
+++ platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Hashtable.java 2012-01-18 09:17:07 UTC (rev 14057)
@@ -514,6 +514,7 @@
public synchronized void clear()
{
makeDirty();
+ delegate.clear();
if (backingStore != null)
{
@@ -526,7 +527,6 @@
backingStore.clear(ownerSM);
}
}
- delegate.clear();
}
/**
Modified: platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/LinkedHashMap.java
===================================================================
--- platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/LinkedHashMap.java 2012-01-17 18:28:39 UTC (rev 14056)
+++ platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/LinkedHashMap.java 2012-01-18 09:17:07 UTC (rev 14057)
@@ -518,6 +518,7 @@
public void clear()
{
makeDirty();
+ delegate.clear();
if (backingStore != null)
{
@@ -530,7 +531,6 @@
backingStore.clear(ownerSM);
}
}
- delegate.clear();
}
/**
Modified: platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/LinkedHashSet.java
===================================================================
--- platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/LinkedHashSet.java 2012-01-17 18:28:39 UTC (rev 14056)
+++ platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/LinkedHashSet.java 2012-01-18 09:17:07 UTC (rev 14057)
@@ -581,6 +581,7 @@
public void clear()
{
makeDirty();
+ delegate.clear();
if (backingStore != null)
{
@@ -593,7 +594,6 @@
backingStore.clear(ownerSM);
}
}
- delegate.clear();
}
/**
@@ -669,6 +669,9 @@
{
loadFromStore();
}
+
+ boolean delegateSuccess = delegate.removeAll(elements);
+
if (ownerSM != null && ownerSM.getExecutionContext().getManageRelations())
{
// Relationship management
@@ -710,12 +713,11 @@
}
}
- delegate.removeAll(elements); // Remove from the delegate too
return backingSuccess;
}
else
{
- return delegate.removeAll(elements);
+ return delegateSuccess;
}
}
Modified: platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/LinkedList.java
===================================================================
--- platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/LinkedList.java 2012-01-17 18:28:39 UTC (rev 14056)
+++ platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/LinkedList.java 2012-01-18 09:17:07 UTC (rev 14057)
@@ -811,6 +811,7 @@
public synchronized void clear()
{
makeDirty();
+ delegate.clear();
if (backingStore != null)
{
@@ -823,7 +824,6 @@
backingStore.clear(ownerSM);
}
}
- delegate.clear();
}
/**
@@ -938,6 +938,8 @@
loadFromStore();
}
+ boolean delegateSuccess = delegate.removeAll(elements);
+
if (backingStore != null)
{
boolean backingSuccess = true;
@@ -968,12 +970,11 @@
}
}
- delegate.removeAll(elements);
return backingSuccess;
}
else
{
- return delegate.removeAll(elements);
+ return delegateSuccess;
}
}
Modified: platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/List.java
===================================================================
--- platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/List.java 2012-01-17 18:28:39 UTC (rev 14056)
+++ platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/List.java 2012-01-18 09:17:07 UTC (rev 14057)
@@ -789,6 +789,7 @@
public synchronized void clear()
{
makeDirty();
+ delegate.clear();
if (backingStore != null)
{
@@ -801,7 +802,6 @@
backingStore.clear(ownerSM);
}
}
- delegate.clear();
}
/**
@@ -915,6 +915,8 @@
loadFromStore();
}
+ boolean delegateSuccess = delegate.removeAll(elements);
+
if (backingStore != null)
{
boolean backingSuccess = true;
@@ -945,12 +947,11 @@
}
}
- delegate.removeAll(elements);
return backingSuccess;
}
else
{
- return delegate.removeAll(elements);
+ return delegateSuccess;
}
}
Modified: platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Map.java
===================================================================
--- platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Map.java 2012-01-17 18:28:39 UTC (rev 14056)
+++ platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Map.java 2012-01-18 09:17:07 UTC (rev 14057)
@@ -575,6 +575,7 @@
public synchronized void clear()
{
makeDirty();
+ delegate.clear();
if (backingStore != null)
{
@@ -587,7 +588,6 @@
backingStore.clear(ownerSM);
}
}
- delegate.clear();
}
/**
Modified: platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/PriorityQueue.java
===================================================================
--- platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/PriorityQueue.java 2012-01-17 18:28:39 UTC (rev 14056)
+++ platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/PriorityQueue.java 2012-01-18 09:17:07 UTC (rev 14057)
@@ -649,6 +649,7 @@
public synchronized void clear()
{
makeDirty();
+ delegate.clear();
if (backingStore != null)
{
@@ -661,7 +662,6 @@
backingStore.clear(ownerSM);
}
}
- delegate.clear();
}
/**
@@ -783,6 +783,8 @@
loadFromStore();
}
+ boolean delegateSuccess = delegate.removeAll(elements);
+
if (backingStore != null)
{
boolean backingSuccess = true;
@@ -813,12 +815,11 @@
}
}
- delegate.removeAll(elements);
return backingSuccess;
}
else
{
- return delegate.removeAll(elements);
+ return delegateSuccess;
}
}
Modified: platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Properties.java
===================================================================
--- platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Properties.java 2012-01-17 18:28:39 UTC (rev 14056)
+++ platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Properties.java 2012-01-18 09:17:07 UTC (rev 14057)
@@ -538,6 +538,7 @@
public synchronized void clear()
{
makeDirty();
+ delegate.clear();
if (backingStore != null)
{
@@ -550,7 +551,6 @@
backingStore.clear(ownerSM);
}
}
- delegate.clear();
}
/**
Modified: platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Queue.java
===================================================================
--- platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Queue.java 2012-01-17 18:28:39 UTC (rev 14056)
+++ platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Queue.java 2012-01-18 09:17:07 UTC (rev 14057)
@@ -614,6 +614,7 @@
public synchronized void clear()
{
makeDirty();
+ delegate.clear();
if (backingStore != null)
{
@@ -626,7 +627,6 @@
backingStore.clear(ownerSM);
}
}
- delegate.clear();
}
/**
@@ -748,6 +748,8 @@
loadFromStore();
}
+ boolean delegateSuccess = delegate.removeAll(elements);
+
if (backingStore != null)
{
boolean backingSuccess = true;
@@ -778,12 +780,11 @@
}
}
- delegate.removeAll(elements);
return backingSuccess;
}
else
{
- return delegate.removeAll(elements);
+ return delegateSuccess;
}
}
Modified: platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Set.java
===================================================================
--- platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Set.java 2012-01-17 18:28:39 UTC (rev 14056)
+++ platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Set.java 2012-01-18 09:17:07 UTC (rev 14057)
@@ -637,6 +637,7 @@
public synchronized void clear()
{
makeDirty();
+ delegate.clear();
if (backingStore != null)
{
@@ -649,7 +650,6 @@
backingStore.clear(ownerSM);
}
}
- delegate.clear();
}
/**
@@ -714,10 +714,10 @@
/**
* Method to remove a Collection of elements.
- * @param c The collection to remove
+ * @param elements The collection to remove
* @return Whether they were removed successfully.
**/
- public synchronized boolean removeAll(java.util.Collection c)
+ public synchronized boolean removeAll(java.util.Collection elements)
{
makeDirty();
@@ -725,10 +725,13 @@
{
loadFromStore();
}
+
+ boolean delegateSuccess = delegate.removeAll(elements);
+
if (ownerSM != null && ownerSM.getExecutionContext().getManageRelations())
{
// Relationship management
- Iterator iter = c.iterator();
+ Iterator iter = elements.iterator();
RelationshipManager relMgr = ownerSM.getExecutionContext().getRelationshipManager(ownerSM);
while (iter.hasNext())
{
@@ -744,7 +747,7 @@
if (SCOUtils.useQueuedUpdate(queued, ownerSM))
{
backingSuccess = false;
- for (Object element : c)
+ for (Object element : elements)
{
if (contains(element))
{
@@ -757,7 +760,7 @@
{
try
{
- backingSuccess = backingStore.removeAll(ownerSM, c, size);
+ backingSuccess = backingStore.removeAll(ownerSM, elements, size);
}
catch (NucleusDataStoreException dse)
{
@@ -766,12 +769,11 @@
}
}
- delegate.removeAll(c); // Remove from the delegate too
return backingSuccess;
}
else
{
- return delegate.removeAll(c);
+ return delegateSuccess;
}
}
Modified: platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/SortedMap.java
===================================================================
--- platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/SortedMap.java 2012-01-17 18:28:39 UTC (rev 14056)
+++ platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/SortedMap.java 2012-01-18 09:17:07 UTC (rev 14057)
@@ -669,6 +669,7 @@
public void clear()
{
makeDirty();
+ delegate.clear();
if (backingStore != null)
{
@@ -681,7 +682,6 @@
backingStore.clear(ownerSM);
}
}
- delegate.clear();
}
/**
Modified: platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/SortedSet.java
===================================================================
--- platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/SortedSet.java 2012-01-17 18:28:39 UTC (rev 14056)
+++ platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/SortedSet.java 2012-01-18 09:17:07 UTC (rev 14057)
@@ -740,6 +740,7 @@
public void clear()
{
makeDirty();
+ delegate.clear();
if (backingStore != null)
{
@@ -752,7 +753,6 @@
backingStore.clear(ownerSM);
}
}
- delegate.clear();
}
/**
@@ -829,6 +829,8 @@
loadFromStore();
}
+ boolean delegateSuccess = delegate.removeAll(elements);
+
if (ownerSM != null && ownerSM.getExecutionContext().getManageRelations())
{
// Relationship management
@@ -870,12 +872,11 @@
}
}
- delegate.removeAll(elements); // Remove from the delegate too
return backingSuccess;
}
else
{
- return delegate.removeAll(elements);
+ return delegateSuccess;
}
}
Modified: platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Stack.java
===================================================================
--- platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Stack.java 2012-01-17 18:28:39 UTC (rev 14056)
+++ platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Stack.java 2012-01-18 09:17:07 UTC (rev 14057)
@@ -785,6 +785,7 @@
public synchronized void clear()
{
makeDirty();
+ delegate.clear();
if (backingStore != null)
{
@@ -797,7 +798,6 @@
backingStore.clear(ownerSM);
}
}
- delegate.clear();
}
/**
@@ -936,6 +936,8 @@
loadFromStore();
}
+ boolean delegateSuccess = delegate.removeAll(elements);
+
if (backingStore != null)
{
boolean backingSuccess = true;
@@ -966,12 +968,11 @@
}
}
- delegate.removeAll(elements);
return backingSuccess;
}
else
{
- return delegate.removeAll(elements);
+ return delegateSuccess;
}
}
Modified: platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/TreeMap.java
===================================================================
--- platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/TreeMap.java 2012-01-17 18:28:39 UTC (rev 14056)
+++ platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/TreeMap.java 2012-01-18 09:17:07 UTC (rev 14057)
@@ -670,6 +670,7 @@
public void clear()
{
makeDirty();
+ delegate.clear();
if (backingStore != null)
{
@@ -682,7 +683,6 @@
backingStore.clear(ownerSM);
}
}
- delegate.clear();
}
/**
Modified: platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/TreeSet.java
===================================================================
--- platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/TreeSet.java 2012-01-17 18:28:39 UTC (rev 14056)
+++ platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/TreeSet.java 2012-01-18 09:17:07 UTC (rev 14057)
@@ -740,6 +740,7 @@
public void clear()
{
makeDirty();
+ delegate.clear();
if (backingStore != null)
{
@@ -752,7 +753,6 @@
backingStore.clear(ownerSM);
}
}
- delegate.clear();
}
/**
@@ -829,6 +829,8 @@
loadFromStore();
}
+ boolean delegateSuccess = delegate.removeAll(elements);
+
if (ownerSM != null && ownerSM.getExecutionContext().getManageRelations())
{
// Relationship management
@@ -870,12 +872,11 @@
}
}
- delegate.removeAll(elements); // Remove from the delegate too
return backingSuccess;
}
else
{
- return delegate.removeAll(elements);
+ return delegateSuccess;
}
}
Modified: platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Vector.java
===================================================================
--- platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Vector.java 2012-01-17 18:28:39 UTC (rev 14056)
+++ platform/core/trunk/src/java/org/datanucleus/store/types/sco/backed/Vector.java 2012-01-18 09:17:07 UTC (rev 14057)
@@ -899,6 +899,7 @@
public synchronized void clear()
{
makeDirty();
+ delegate.clear();
if (backingStore != null)
{
@@ -911,7 +912,6 @@
backingStore.clear(ownerSM);
}
}
- delegate.clear();
}
/**
@@ -1026,6 +1026,8 @@
loadFromStore();
}
+ boolean delegateSuccess = delegate.removeAll(elements);
+
if (backingStore != null)
{
boolean backingSuccess = true;
@@ -1056,12 +1058,11 @@
}
}
- delegate.removeAll(elements); // Remove from the delegate too
return backingSuccess;
}
else
{
- return delegate.removeAll(elements);
+ return delegateSuccess;
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|