Author: davsclaus
Date: Tue Feb  3 13:10:32 2009
New Revision: 740295

URL: http://svn.apache.org/viewvc?rev=740295&view=rev
Log:
CAMEL-1309: StringSource is not properly serializable handling null values. 
Thanks to gnodet for patch.

Modified:
    
camel/trunk/camel-core/src/main/java/org/apache/camel/converter/jaxp/StringSource.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/converter/stream/StreamCacheConverter.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/converter/jaxp/StringSource.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/jaxp/StringSource.java?rev=740295&r1=740294&r2=740295&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/converter/jaxp/StringSource.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/converter/jaxp/StringSource.java
 Tue Feb  3 13:10:32 2009
@@ -85,16 +85,36 @@
     }
 
     public void writeExternal(ObjectOutput out) throws IOException {
-        out.writeUTF(text);
-        out.writeUTF(encoding);
-        out.writeUTF(getPublicId());
-        out.writeUTF(getSystemId());
+        int b = ((text != null ? 0x01 : 0x00) + (encoding != null ? 0x02 : 
0x00)
+                + (getPublicId() != null ? 0x04 : 0x00) + (getSystemId() != 
null ? 0x08 : 0x00));
+        out.writeByte(b);
+        if ((b & 0x01) != 0) {
+            out.writeUTF(text);
+        }
+        if ((b & 0x02) != 0) {
+            out.writeUTF(encoding);
+        }
+        if ((b & 0x04) != 0) {
+            out.writeUTF(getPublicId());
+        }
+        if ((b & 0x08) != 0) {
+            out.writeUTF(getSystemId());
+        }
     }
 
     public void readExternal(ObjectInput in) throws IOException, 
ClassNotFoundException {
-        text = in.readUTF();
-        encoding = in.readUTF();
-        setPublicId(in.readUTF());
-        setSystemId(in.readUTF());
+        int b = in.readByte();
+        if ((b & 0x01) != 0) {
+            text = in.readUTF();
+        }
+        if ((b & 0x02) != 0) {
+            encoding = in.readUTF();
+        }
+        if ((b & 0x04) != 0) {
+            setPublicId(in.readUTF());
+        }
+        if ((b & 0x08) != 0) {
+            setSystemId(in.readUTF());
+        }
     }
 }

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/converter/stream/StreamCacheConverter.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/stream/StreamCacheConverter.java?rev=740295&r1=740294&r2=740295&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/converter/stream/StreamCacheConverter.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/converter/stream/StreamCacheConverter.java
 Tue Feb  3 13:10:32 2009
@@ -83,6 +83,9 @@
 
         private static final long serialVersionUID = 4147248494104812945L;
 
+        public SourceCache() {
+        }
+
         public SourceCache(String text) {
             super(text);
         }


Reply via email to