Author: davsclaus Date: Tue Nov 24 06:03:51 2009 New Revision: 883598 URL: http://svn.apache.org/viewvc?rev=883598&view=rev Log: CAMEL-2215: Fixed CaseInsensitiveMap not being serializable.
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/util/CaseInsensitiveMap.java camel/trunk/camel-core/src/test/java/org/apache/camel/util/CaseInsensitiveMapTest.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/util/CaseInsensitiveMap.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/CaseInsensitiveMap.java?rev=883598&r1=883597&r2=883598&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/util/CaseInsensitiveMap.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/util/CaseInsensitiveMap.java Tue Nov 24 06:03:51 2009 @@ -38,7 +38,7 @@ // holds a map of lower case key -> original key private Map<String, String> originalKeys; // holds a snapshot view of current entry set - private Set<Map.Entry<String, Object>> entrySetView; + private transient Set<Map.Entry<String, Object>> entrySetView; public CaseInsensitiveMap() { super(); Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/util/CaseInsensitiveMapTest.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/util/CaseInsensitiveMapTest.java?rev=883598&r1=883597&r2=883598&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/util/CaseInsensitiveMapTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/util/CaseInsensitiveMapTest.java Tue Nov 24 06:03:51 2009 @@ -16,6 +16,10 @@ */ package org.apache.camel.util; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; @@ -289,4 +293,20 @@ assertEquals(1, other.size()); } + public void testSerialization() throws Exception { + CaseInsensitiveMap testMap = new CaseInsensitiveMap(); + testMap.put("key", "value"); + // force entry set to be created which could cause the map to be non serializable + testMap.entrySet(); + + ByteArrayOutputStream bStream = new ByteArrayOutputStream(); + ObjectOutputStream objStream = new ObjectOutputStream(bStream); + objStream.writeObject(testMap); + + ObjectInputStream inStream = new ObjectInputStream(new ByteArrayInputStream(bStream.toByteArray())); + CaseInsensitiveMap testMapCopy = (CaseInsensitiveMap) inStream.readObject(); + + assertTrue(testMapCopy.containsKey("key")); + } + } \ No newline at end of file