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 2015/06/05 20:31:35 UTC

svn commit: r1683831 - /axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/utility/DataSourceFormatter.java

Author: veithen
Date: Fri Jun  5 18:31:34 2015
New Revision: 1683831

URL: http://svn.apache.org/r1683831
Log:
If you want to use an OMDataSource to store non-XML data, that's your problem, but don't tell Axiom to do anything with it.

Modified:
    axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/utility/DataSourceFormatter.java

Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/utility/DataSourceFormatter.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/utility/DataSourceFormatter.java?rev=1683831&r1=1683830&r2=1683831&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/utility/DataSourceFormatter.java (original)
+++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/utility/DataSourceFormatter.java Fri Jun  5 18:31:34 2015
@@ -59,21 +59,21 @@ public class DataSourceFormatter impleme
             if (log.isDebugEnabled()) {
                 log.debug("start writeTo()");
             }
+            OMElement omElement = messageContext.getEnvelope().getBody().getFirstElement();
+            DataSource busObject;
+            try {
+                busObject = (DataSource)((DataSourceBlock)((OMSourcedElement) omElement).getDataSource()).getBusinessObject(true);
+            } catch (XMLStreamException e) {
+                throw AxisFault.makeFault(e);
+            }
+            DataHandler dataHandler = new DataHandler(busObject);
             if (attachments != null && !attachments.isEmpty()) {
-                OMElement omElement = messageContext.getEnvelope().getBody().getFirstElement();
-                DataSource busObject;
-                try {
-                    busObject = (DataSource)((DataSourceBlock)((OMSourcedElement) omElement).getDataSource()).getBusinessObject(true);
-                } catch (XMLStreamException e) {
-                    throw AxisFault.makeFault(e);
-                }
                 OMMultipartWriter mpw = new OMMultipartWriter(outputStream, format);
-                DataHandler rootDataHandler = new DataHandler(busObject);
-                if (!rootDataHandler.getContentType().equals(contentType)) {
-                    rootDataHandler = new WrappedDataHandler(rootDataHandler, contentType);
+                if (!dataHandler.getContentType().equals(contentType)) {
+                    dataHandler = new WrappedDataHandler(dataHandler, contentType);
                 }
                 try {
-                    mpw.writePart(rootDataHandler, format.getRootContentId());
+                    mpw.writePart(dataHandler, format.getRootContentId());
                     for (String cid : attachments.keySet()) {
                         mpw.writePart(attachments.get(cid), cid);
                     }
@@ -83,19 +83,8 @@ public class DataSourceFormatter impleme
                     throw AxisFault.makeFault(ex);
                 }
             } else {
-                OMElement omElement = messageContext.getEnvelope().getBody().getFirstElement();
-                if (omElement != null) {
-                    try {
-                        if (preserve) {
-                            omElement.serialize(outputStream, format);
-                        } else {
-                            omElement.serializeAndConsume(outputStream, format);
-                        }
-                    } catch (XMLStreamException e) {
-                        throw AxisFault.makeFault(e);
-                    }
-                }
                 try {
+                    dataHandler.writeTo(outputStream);
                     outputStream.flush();
                 } catch (IOException e) {
                     throw AxisFault.makeFault(e);