You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by kw...@apache.org on 2016/09/27 16:14:15 UTC

svn commit: r1762513 - in /sling/trunk/bundles/jcr/resource/src: main/java/org/apache/sling/jcr/resource/internal/JcrModifiableValueMap.java test/java/org/apache/sling/jcr/resource/internal/JcrModifiableValueMapTest.java

Author: kwin
Date: Tue Sep 27 16:14:15 2016
New Revision: 1762513

URL: http://svn.apache.org/viewvc?rev=1762513&view=rev
Log:
SLING-6071 return real old value for remove()

This closes #175

Modified:
    sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrModifiableValueMap.java
    sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrModifiableValueMapTest.java

Modified: sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrModifiableValueMap.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrModifiableValueMap.java?rev=1762513&r1=1762512&r2=1762513&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrModifiableValueMap.java (original)
+++ sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrModifiableValueMap.java Tue Sep 27 16:14:15 2016
@@ -484,8 +484,8 @@ public final class JcrModifiableValueMap
     public Object remove(final Object aKey) {
         final String key = checkKey(aKey.toString());
         readFully();
-        final Object oldValue = this.cache.remove(key);
-        this.valueCache.remove(key);
+        this.cache.remove(key);
+        final Object oldValue = this.valueCache.remove(key);
         try {
             final String name = escapeKeyName(key);
             if ( node.hasProperty(name) ) {

Modified: sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrModifiableValueMapTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrModifiableValueMapTest.java?rev=1762513&r1=1762512&r2=1762513&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrModifiableValueMapTest.java (original)
+++ sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrModifiableValueMapTest.java Tue Sep 27 16:14:15 2016
@@ -122,6 +122,22 @@ public class JcrModifiableValueMapTest e
         assertContains(pvm2, currentlyStored);
     }
 
+    public void testRemove()
+    throws Exception {
+        getSession().refresh(false);
+        final ModifiableValueMap pvm = new JcrModifiableValueMap(this.rootNode, getHelperData());
+
+        final String key = "removeMe";
+        final Long longValue = 5L;
+
+        pvm.put(key, longValue);
+
+        final Object removedValue = pvm.remove(key);
+        assertTrue(removedValue instanceof Long);
+        assertTrue(removedValue == longValue);
+        assertFalse(pvm.containsKey(key));
+    }
+
     public void testSerializable()
     throws Exception {
         this.rootNode.getSession().refresh(false);