You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by ve...@apache.org on 2008/05/02 19:45:45 UTC

svn commit: r652844 - /synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/base/BaseUtils.java

Author: veithen
Date: Fri May  2 10:45:44 2008
New Revision: 652844

URL: http://svn.apache.org/viewvc?rev=652844&view=rev
Log:
SYNAPSE-260

Modified:
    synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/base/BaseUtils.java

Modified: synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/base/BaseUtils.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/base/BaseUtils.java?rev=652844&r1=652843&r2=652844&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/base/BaseUtils.java (original)
+++ synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/base/BaseUtils.java Fri May  2 10:45:44 2008
@@ -28,6 +28,7 @@
 import org.apache.axis2.transport.http.HTTPTransportUtils;
 import org.apache.synapse.transport.vfs.PollTableEntry;
 import org.apache.axis2.context.MessageContext;
+import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.axiom.soap.*;
@@ -43,6 +44,8 @@
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.attachments.ByteArrayDataSource;
 
+import javax.mail.internet.ContentType;
+import javax.mail.internet.ParseException;
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
@@ -165,7 +168,13 @@
         SOAPEnvelope envelope = null;
         StAXBuilder builder = null;
 
-        String charSetEnc  = BuilderUtil.getCharSetEncoding(contentType);
+        String charSetEnc;
+        try {
+            charSetEnc = new ContentType(contentType).getParameter("charset");
+        } catch (ParseException ex) {
+            charSetEnc = null;
+        }
+        
         InputStream in = getInputStream(message);
 
         // handle SOAP payloads when a correct content type is available
@@ -222,8 +231,8 @@
             builder == null ? null :
                 builder.getDocument() == null ? null : builder.getDocument().getCharsetEncoding();
 
-        if (charEncOfMessage != null &&
-            !(charEncOfMessage.trim().length() == 0) &&
+        if (StringUtils.isNotBlank(charEncOfMessage) &&
+            StringUtils.isNotBlank(charSetEnc) &&
             !charEncOfMessage.equalsIgnoreCase(charSetEnc)) {
             handleException("Charset encoding of transport differs from that of the payload");
         }