You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ve...@apache.org on 2012/04/28 17:10:31 UTC

svn commit: r1331783 - in /axis/axis2/java/core/trunk/modules: jaxws/src/org/apache/axis2/jaxws/message/attachments/AttachmentUtils.java kernel/src/org/apache/axis2/builder/MIMEBuilder.java

Author: veithen
Date: Sat Apr 28 15:10:30 2012
New Revision: 1331783

URL: http://svn.apache.org/viewvc?rev=1331783&view=rev
Log:
AXIS2-5302: Enable streaming of the root part of a SwA/MTOM message.

Modified:
    axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/AttachmentUtils.java
    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/builder/MIMEBuilder.java

Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/AttachmentUtils.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/AttachmentUtils.java?rev=1331783&r1=1331782&r2=1331783&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/AttachmentUtils.java (original)
+++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/AttachmentUtils.java Sat Apr 28 15:10:30 2012
@@ -82,19 +82,24 @@ public class AttachmentUtils {
             if (log.isDebugEnabled()) {
                 log.debug("Attachments exist....");
             }
-            for(int i=0; i < contentIds.length; i++){
-                DataHandler dh = attachments.getDataHandler(contentIds[i]);
-                if(dh != null){
-                    DataSource dataSource = dh.getDataSource();
-                    if(dh != null && dataSource instanceof CachedFileDataSource){
-                        if (log.isDebugEnabled()) {
-                            log.debug("Attachment's DataHandler uses CachedFileDataSource...");
+            String rootContentId = attachments.getRootPartContentID();
+            for (String contentId : contentIds) {
+                // Skip the SOAP part because it is never cached on file and because it may have
+                // been consumed (which would cause getDataSource() to throw an exception)
+                if (!contentId.equals(rootContentId)) {
+                    DataHandler dh = attachments.getDataHandler(contentId);
+                    if(dh != null){
+                        DataSource dataSource = dh.getDataSource();
+                        if(dh != null && dataSource instanceof CachedFileDataSource){
+                            if (log.isDebugEnabled()) {
+                                log.debug("Attachment's DataHandler uses CachedFileDataSource...");
+                            }
+                            File file = ((CachedFileDataSource)dataSource).getFile();
+                            if (log.isDebugEnabled()) {
+                                log.debug(" Making file.deleteOnExit() request on "+file.getAbsolutePath());
+                            }
+                            file.deleteOnExit();
                         }
-                        File file = ((CachedFileDataSource)dataSource).getFile();
-                        if (log.isDebugEnabled()) {
-                            log.debug(" Making file.deleteOnExit() request on "+file.getAbsolutePath());
-                        }
-                        file.deleteOnExit();
                     }
                 }
             }

Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/builder/MIMEBuilder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/builder/MIMEBuilder.java?rev=1331783&r1=1331782&r2=1331783&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/builder/MIMEBuilder.java (original)
+++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/builder/MIMEBuilder.java Sat Apr 28 15:10:30 2012
@@ -71,7 +71,7 @@ public class MIMEBuilder implements Buil
                 type = startInfo;
             }
         }
-        return builder.processDocument(attachments.getRootPartInputStream(),
+        return builder.processDocument(attachments.getRootPartInputStream(false),
                 type, msgContext);
     }
 }