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 sc...@apache.org on 2010/09/27 17:43:21 UTC
svn commit: r1001786 - in
/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2:
datasource/jaxb/JAXBAttachmentMarshaller.java
jaxws/message/attachments/JAXBAttachmentMarshaller.java
Author: scheu
Date: Mon Sep 27 15:43:20 2010
New Revision: 1001786
URL: http://svn.apache.org/viewvc?rev=1001786&view=rev
Log:
AXIS2-4831
Contributor: Rich Scheuerle
Summary:
SWA attachment may not be added if the MTOMXMLStreamWriter is not used
Modified:
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBAttachmentMarshaller.java
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/JAXBAttachmentMarshaller.java
Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBAttachmentMarshaller.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBAttachmentMarshaller.java?rev=1001786&r1=1001785&r2=1001786&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBAttachmentMarshaller.java (original)
+++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBAttachmentMarshaller.java Mon Sep 27 15:43:20 2010
@@ -145,7 +145,7 @@ public class JAXBAttachmentMarshaller ex
if(optimizedThreshold==0 || dataLength > optimizedThreshold){
DataHandler dataHandler = new DataHandler(mpds);
- cid = addDataHandler(dataHandler);
+ cid = addDataHandler(dataHandler, false);
}
// Add the content id to the mime body part
@@ -166,7 +166,7 @@ public class JAXBAttachmentMarshaller ex
log.debug("Adding MTOM/XOP datahandler attachment for element: " +
"{" + namespace + "}" + localPart);
}
- String cid = addDataHandler(data);
+ String cid = addDataHandler(data, false);
return cid == null ? null : "cid:" + cid;
}
@@ -179,7 +179,7 @@ public class JAXBAttachmentMarshaller ex
log.debug("Adding SWAREF attachment");
}
- String cid = addDataHandler(data);
+ String cid = addDataHandler(data, true);
setDoingSWA();
return "cid:" + cid;
}
@@ -189,21 +189,45 @@ public class JAXBAttachmentMarshaller ex
* @param dh
* @return
*/
- private String addDataHandler(DataHandler dh) {
+ private String addDataHandler(DataHandler dh, boolean isSWA) {
String cid = null;
OMText textNode = null;
// If this is an MTOMXMLStreamWriter then inform the writer
- // that it must write out this attchment (I guess we should do this
+ // that it must write out this attachment (I guess we should do this
// even if the attachment is SWAREF ?)
- if (writer instanceof MTOMXMLStreamWriter) {
+ if (isSWA) {
+ if (log.isDebugEnabled()){
+ log.debug("adding DataHandler for SWA");
+ }
textNode = new OMTextImpl(dh, null);
- if(((MTOMXMLStreamWriter) writer).isOptimizedThreshold(textNode)){
- cid = textNode.getContentID();
- ((MTOMXMLStreamWriter) writer).writeOptimized(textNode);
- // Remember the attachment on the message.
- addDataHandler(dh, cid);
- }
+ // If old SWA attachments, get the ID and add the attachment to message
+ cid = textNode.getContentID();
+ addDataHandler(dh, cid);
+ } else {
+ if (log.isDebugEnabled()){
+ log.debug("adding DataHandler for MTOM");
+ }
+ if (writer instanceof MTOMXMLStreamWriter) {
+ textNode = new OMTextImpl(dh, null);
+ if(((MTOMXMLStreamWriter) writer).isOptimizedThreshold(textNode)){
+ if (log.isDebugEnabled()){
+ log.debug("The MTOM attachment is written as an attachment part.");
+ }
+ cid = textNode.getContentID();
+ ((MTOMXMLStreamWriter) writer).writeOptimized(textNode);
+ // Remember the attachment on the message.
+ addDataHandler(dh, cid);
+ } else {
+ if (log.isDebugEnabled()){
+ log.debug("The MTOM attachment is inlined.");
+ }
+ }
+ } else {
+ if (log.isDebugEnabled()){
+ log.debug("writer is not MTOM capable. The attachment will be inlined.");
+ }
+ }
}
if (log.isDebugEnabled()){
@@ -243,6 +267,12 @@ public class JAXBAttachmentMarshaller ex
public void addDataHandler(DataHandler dh, String cid) {
if (msgContext != null) {
msgContext.addAttachment(cid, dh);
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug("The msgContext is null. The attachment is not stored");
+ log.debug(" content id=" + cid);
+ log.debug(" dataHandler =" + dh);
+ }
}
}
}
Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/JAXBAttachmentMarshaller.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/JAXBAttachmentMarshaller.java?rev=1001786&r1=1001785&r2=1001786&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/JAXBAttachmentMarshaller.java (original)
+++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/JAXBAttachmentMarshaller.java Mon Sep 27 15:43:20 2010
@@ -21,6 +21,8 @@ package org.apache.axis2.jaxws.message.a
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.jaxws.message.Message;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import javax.activation.DataHandler;
import javax.xml.stream.XMLStreamWriter;
@@ -30,6 +32,8 @@ import javax.xml.stream.XMLStreamWriter;
* and create populate the appropriate constructs within the JAX-WS Message Model.
*/
public class JAXBAttachmentMarshaller extends org.apache.axis2.datasource.jaxb.JAXBAttachmentMarshaller {
+
+ private static final Log log = LogFactory.getLog(JAXBAttachmentMarshaller.class);
private Message message;
public JAXBAttachmentMarshaller(Message message, XMLStreamWriter writer) {
@@ -79,6 +83,12 @@ public class JAXBAttachmentMarshaller ex
public void addDataHandler(DataHandler dh, String cid) {
if (message != null) {
message.addDataHandler(dh, cid);
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug("The msgContext is null. The attachment is not stored");
+ log.debug(" content id=" + cid);
+ log.debug(" dataHandler =" + dh);
+ }
}
}
}