You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ga...@apache.org on 2009/01/12 22:22:29 UTC

svn commit: r733900 - in /webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj: SOAPConnectionImpl.java util/SAAJUtil.java

Author: gawor
Date: Mon Jan 12 13:22:25 2009
New Revision: 733900

URL: http://svn.apache.org/viewvc?rev=733900&view=rev
Log:
AttachmentPart and DataHandler content-types might be different so make sure the content-type of AttachmentPart is used

Modified:
    webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPConnectionImpl.java
    webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/util/SAAJUtil.java

Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPConnectionImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPConnectionImpl.java?rev=733900&r1=733899&r2=733900&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPConnectionImpl.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPConnectionImpl.java Mon Jan 12 13:22:25 2009
@@ -20,6 +20,7 @@
 package org.apache.axis2.saaj;
 
 import org.apache.axiom.attachments.Attachments;
+import org.apache.axiom.attachments.ConfigurableDataHandler;
 import org.apache.axiom.om.OMAttribute;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNode;
@@ -148,7 +149,14 @@
                 if (contentId == null) {
                     contentId = IDGenerator.generateID();
                 }
-                attachments.addDataHandler(contentId, attachment.getDataHandler());
+                DataHandler handler = attachment.getDataHandler();
+                // make sure that AttachmentPart content-type overrides DataHandler content-type
+                if (!SAAJUtil.compareContentTypes(attachment.getContentType(), handler.getContentType())) {
+                    ConfigurableDataHandler configuredHandler = new ConfigurableDataHandler(handler.getDataSource());
+                    configuredHandler.setContentType(attachment.getContentType());
+                    handler = configuredHandler;
+                }
+                attachments.addDataHandler(contentId, handler);
             }
             options.setProperty(Constants.Configuration.ENABLE_SWA, Constants.VALUE_TRUE);
         }

Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/util/SAAJUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/util/SAAJUtil.java?rev=733900&r1=733899&r2=733900&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/util/SAAJUtil.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/util/SAAJUtil.java Mon Jan 12 13:22:25 2009
@@ -163,4 +163,10 @@
         int idx = contentType.indexOf(";");
         return (idx == -1 ? contentType : contentType.substring(0, idx)).trim().toLowerCase();
     }
+    
+    public static boolean compareContentTypes(String contentType1, String contentType2) {
+        String ct1 = (contentType1 == null) ? "" : contentType1.trim().toLowerCase();
+        String ct2 = (contentType2 == null) ? "" : contentType2.trim().toLowerCase();
+        return ct1.equals(ct2);        
+    }
 }