You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ff...@apache.org on 2008/09/03 06:10:12 UTC

svn commit: r691511 - /cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java

Author: ffang
Date: Tue Sep  2 21:10:11 2008
New Revision: 691511

URL: http://svn.apache.org/viewvc?rev=691511&view=rev
Log:
[CXF-1779]exclude Map or Collection property as well which entry may not be serializable

Modified:
    cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java

Modified: cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java?rev=691511&r1=691510&r2=691511&view=diff
==============================================================================
--- cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java (original)
+++ cxf/trunk/rt/transports/jbi/src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java Tue Sep  2 21:10:11 2008
@@ -22,7 +22,8 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.Serializable;
-import java.util.Set;
+import java.util.Collection;
+import java.util.Map;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -112,12 +113,18 @@
                         }
                     }
                     //copy properties
-                    Set<String> keys = inMessage.keySet();
-                    for (String key : keys) {
-                        if (inMessage.get(key) instanceof Serializable) {
-                            msg.setProperty(key, inMessage.get(key));
+                    
+                    for (Map.Entry<String, Object> ent : inMessage.entrySet()) {
+                        //check if value is Serializable, and if value is Map or collection,
+                        //just exclude it since the entry of it may not be Serializable as well
+                        if (ent.getValue() instanceof Serializable 
+                                && !(ent.getValue() instanceof Map)
+                                && !(ent.getValue() instanceof Collection)) {
+                            msg.setProperty(ent.getKey(), ent.getValue());
                         }
                     }
+
+
                     //copy contents
                     msg.setContent(new DOMSource(doc));
                     xchng.setMessage(msg, "out");