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);
     }
 }


Reply via email to