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


Reply via email to