dims 2002/07/01 07:48:00
Modified: java/src/org/apache/axis/attachments AttachmentPart.java
java/src/org/apache/axis/utils axisNLS.properties
java/src/org/apache/axis SOAPPart.java
Log:
Fixes for SAAJ compliance.
Revision Changes Path
1.15 +34 -8
xml-axis/java/src/org/apache/axis/attachments/AttachmentPart.java
Index: AttachmentPart.java
===================================================================
RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/attachments/AttachmentPart.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- AttachmentPart.java 29 Jun 2002 21:55:39 -0000 1.14
+++ AttachmentPart.java 1 Jul 2002 14:47:59 -0000 1.15
@@ -89,6 +89,9 @@
/** Field contentLocation */
private String contentLocation;
+ /** Field contentObject */
+ private Object contentObject;
+
/**
* Constructor AttachmentPart
*/
@@ -105,7 +108,8 @@
addMimeHeader(HTTPConstants.HEADER_CONTENT_ID,
SOAPUtils.getNewContentIdValue());
datahandler = dh;
- addMimeHeader(HTTPConstants.HEADER_CONTENT_TYPE, dh.getContentType());
+ if(dh != null)
+ addMimeHeader(HTTPConstants.HEADER_CONTENT_TYPE, dh.getContentType());
}
/**
@@ -197,7 +201,7 @@
* @returns void
*/
public void setContentId(String newCid) {
- if (!newCid.toLowerCase().startsWith("cid:")) {
+ if (newCid!=null && !newCid.toLowerCase().startsWith("cid:")) {
newCid = "cid:" + newCid;
}
addMimeHeader(HTTPConstants.HEADER_CONTENT_ID, newCid);
@@ -302,6 +306,9 @@
* no data in this <CODE>AttachmentPart</CODE> object
*/
public DataHandler getDataHandler() throws SOAPException {
+ if(datahandler == null) {
+ throw new SOAPException(JavaUtils.getMessage("noContent"));
+ }
return datahandler;
}
@@ -320,6 +327,9 @@
* DataHandler</CODE> object
*/
public void setDataHandler(DataHandler datahandler) {
+ if(datahandler == null)
+ throw new java.lang.IllegalArgumentException(
+ JavaUtils.getMessage("illegalArgumentException00"));
this.datahandler = datahandler;
setMimeHeader(HTTPConstants.HEADER_CONTENT_TYPE,
datahandler.getContentType());
}
@@ -358,8 +368,14 @@
* was a data transformation error
*/
public Object getContent() throws SOAPException {
- javax.activation.DataSource ds = datahandler.getDataSource();
+ if(contentObject != null)
+ return contentObject;
+ if(datahandler == null) {
+ throw new SOAPException(JavaUtils.getMessage("noContent"));
+ }
+
+ javax.activation.DataSource ds = datahandler.getDataSource();
if (ds instanceof ManagedMemoryDataSource) {
ManagedMemoryDataSource mds = (ManagedMemoryDataSource) ds;
@@ -403,20 +419,29 @@
String s = (String) object;
java.io.ByteArrayInputStream bais =
new java.io.ByteArrayInputStream(s.getBytes());
-
datahandler = new DataHandler(new ManagedMemoryDataSource(bais,
1024, contentType, true));
-
+ contentObject = object;
return;
} catch (java.io.IOException io) {
log.error(JavaUtils.getMessage("javaIOException00"), io);
-
throw new java.lang.IllegalArgumentException(
- JavaUtils.getMessage("illegalAccessException00"));
+ JavaUtils.getMessage("illegalArgumentException00"));
}
+ } else if (object instanceof java.io.InputStream) {
+ try {
+ datahandler = new DataHandler(new
ManagedMemoryDataSource((java.io.InputStream)object,
+ 1024, contentType, true));
+ contentObject = object;
+ return;
+ } catch (java.io.IOException io) {
+ log.error(JavaUtils.getMessage("javaIOException00"), io);
+ throw new java.lang.IllegalArgumentException(
+ JavaUtils.getMessage("illegalArgumentException00"));
+ }
} else {
throw new java.lang.IllegalArgumentException(
- JavaUtils.getMessage("illegalAccessException00"));
+ JavaUtils.getMessage("illegalArgumentException00"));
}
}
@@ -427,6 +452,7 @@
*/
public void clearContent() {
datahandler = null;
+ contentObject = null;
}
/**
1.21 +2 -1 xml-axis/java/src/org/apache/axis/utils/axisNLS.properties
Index: axisNLS.properties
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/utils/axisNLS.properties,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- axisNLS.properties 30 Jun 2002 19:59:04 -0000 1.20
+++ axisNLS.properties 1 Jul 2002 14:47:59 -0000 1.21
@@ -805,6 +805,7 @@
mimeErrorParsing=Error in parsing mime data stream: {0}
noRoot=Root part containing SOAP envelope not found. contentId = {0}
noAttachments=No support for attachments
+noContent=No content
targetService=Target service: {0}
exceptionPrinting=Exception caught while printing request message
noConfigFile=No engine configuration file - aborting!
@@ -929,7 +930,7 @@
attach.DimeStreamError4=DIME version received \"{0}\" greater than current
supported version \"{1}\".
attach.DimeStreamError5=DIME option length \"{0}\" is greater stream length.
attach.DimeStreamError6=DIME typelength length \"{0}\" is greater stream length.
-attach.DimeStreamError7=DIME stream closed during options padding.
+attach.DimeStreamError7=DIME stream closed during options padding.
attach.DimeStreamError8=DIME stream closed getting ID length.
attach.DimeStreamError9=DIME stream closed getting ID padding.
attach.DimeStreamError10=DIME stream closed getting type.
1.27 +1 -1 xml-axis/java/src/org/apache/axis/SOAPPart.java
Index: SOAPPart.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/SOAPPart.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- SOAPPart.java 29 Jun 2002 21:55:39 -0000 1.26
+++ SOAPPart.java 1 Jul 2002 14:48:00 -0000 1.27
@@ -511,7 +511,7 @@
* @returns void
*/
public void setContentId(String newCid){
- if(!newCid.toLowerCase().startsWith("cid:")){
+ if(newCid!=null && !newCid.toLowerCase().startsWith("cid:")){
newCid="cid:"+newCid;
}
addMimeHeader(HTTPConstants.HEADER_CONTENT_ID,newCid);