You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by sc...@apache.org on 2005/05/07 19:13:41 UTC

svn commit: r169097 - in /jakarta/commons/proper/collections/trunk/src: java/org/apache/commons/collections/map/TransformedMap.java test/org/apache/commons/collections/map/AbstractTestMap.java

Author: scolebourne
Date: Sat May  7 10:13:40 2005
New Revision: 169097

URL: http://svn.apache.org/viewcvs?rev=169097&view=rev
Log:
Fix so putAll works with an empty map
bug 34686, reported by Marc Lottman

Modified:
    jakarta/commons/proper/collections/trunk/src/java/org/apache/commons/collections/map/TransformedMap.java
    jakarta/commons/proper/collections/trunk/src/test/org/apache/commons/collections/map/AbstractTestMap.java

Modified: jakarta/commons/proper/collections/trunk/src/java/org/apache/commons/collections/map/TransformedMap.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/collections/trunk/src/java/org/apache/commons/collections/map/TransformedMap.java?rev=169097&r1=169096&r2=169097&view=diff
==============================================================================
--- jakarta/commons/proper/collections/trunk/src/java/org/apache/commons/collections/map/TransformedMap.java (original)
+++ jakarta/commons/proper/collections/trunk/src/java/org/apache/commons/collections/map/TransformedMap.java Sat May  7 10:13:40 2005
@@ -150,6 +150,9 @@
      * @throws the transformed object
      */
     protected Map transformMap(Map map) {
+        if (map.isEmpty()) {
+            return map;
+        }
         Map result = new LinkedMap(map.size());
         for (Iterator it = map.entrySet().iterator(); it.hasNext(); ) {
             Map.Entry entry = (Map.Entry) it.next();

Modified: jakarta/commons/proper/collections/trunk/src/test/org/apache/commons/collections/map/AbstractTestMap.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/collections/trunk/src/test/org/apache/commons/collections/map/AbstractTestMap.java?rev=169097&r1=169096&r2=169097&view=diff
==============================================================================
--- jakarta/commons/proper/collections/trunk/src/test/org/apache/commons/collections/map/AbstractTestMap.java (original)
+++ jakarta/commons/proper/collections/trunk/src/test/org/apache/commons/collections/map/AbstractTestMap.java Sat May  7 10:13:40 2005
@@ -907,23 +907,46 @@
             return;
         }
 
+        // check putAll OK adding empty map to empty map
         resetEmpty();
+        assertEquals(0, map.size());
+        map.putAll(new HashMap());
+        assertEquals(0, map.size());
 
-        Map m2 = makeFullMap();
+        // check putAll OK adding empty map to non-empty map
+        resetFull();
+        int size = map.size();
+        map.putAll(new HashMap());
+        assertEquals(size, map.size());
 
+        // check putAll OK adding non-empty map to empty map
+        resetEmpty();
+        Map m2 = makeFullMap();
         map.putAll(m2);
         confirmed.putAll(m2);
         verify();
 
+        // check putAll OK adding non-empty JDK map to empty map
         resetEmpty();
-
         m2 = makeConfirmedMap();
         Object[] keys = getSampleKeys();
         Object[] values = getSampleValues();
         for(int i = 0; i < keys.length; i++) {
             m2.put(keys[i], values[i]);
         }
+        map.putAll(m2);
+        confirmed.putAll(m2);
+        verify();
 
+        // check putAll OK adding non-empty JDK map to non-empty map
+        resetEmpty();
+        m2 = makeConfirmedMap();
+        map.put(keys[0], values[0]);
+        confirmed.put(keys[0], values[0]);
+        verify();
+        for(int i = 1; i < keys.length; i++) {
+            m2.put(keys[i], values[i]);
+        }
         map.putAll(m2);
         confirmed.putAll(m2);
         verify();



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org