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