You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2006/02/16 17:57:13 UTC
svn commit: r378297 -
/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/NormalizedMessageImpl.java
Author: gnodet
Date: Thu Feb 16 08:56:55 2006
New Revision: 378297
URL: http://svn.apache.org/viewcvs?rev=378297&view=rev
Log:
Fix problems with non re-readable trax source when serializing the exchange (from the JdbcAuditor for ex)s
Modified:
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/NormalizedMessageImpl.java
Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/NormalizedMessageImpl.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/NormalizedMessageImpl.java?rev=378297&r1=378296&r2=378297&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/NormalizedMessageImpl.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/NormalizedMessageImpl.java Thu Feb 16 08:56:55 2006
@@ -15,6 +15,8 @@
*/
package org.apache.servicemix.jbi.messaging;
+import org.apache.servicemix.jbi.jaxp.BytesSource;
+import org.apache.servicemix.jbi.jaxp.ResourceSource;
import org.apache.servicemix.jbi.jaxp.SourceTransformer;
import org.apache.servicemix.jbi.jaxp.StringSource;
@@ -24,6 +26,8 @@
import javax.security.auth.Subject;
import javax.xml.transform.Source;
import javax.xml.transform.TransformerException;
+import javax.xml.transform.sax.SAXSource;
+import javax.xml.transform.stream.StreamSource;
import java.io.Externalizable;
import java.io.IOException;
@@ -270,6 +274,15 @@
out.writeObject(properties);
String src = transformer.toString(content);
out.writeObject(src);
+ // We have read the source
+ // so now, ensure that it can be re-read
+ if ((content instanceof StreamSource ||
+ content instanceof SAXSource) &&
+ !(content instanceof StringSource) &&
+ !(content instanceof BytesSource) &&
+ !(content instanceof ResourceSource)) {
+ content = new StringSource(src);
+ }
} catch (TransformerException e) {
throw (IOException) new IOException("Could not transform content to string").initCause(e);
}