You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ga...@apache.org on 2007/07/04 06:15:25 UTC

svn commit: r553066 - /webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java

Author: gawor
Date: Tue Jul  3 21:15:24 2007
New Revision: 553066

URL: http://svn.apache.org/viewvc?view=rev&rev=553066
Log:
implement setBase64Content/getBase64Content properly

Modified:
    webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java

Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java?view=diff&rev=553066&r1=553065&r2=553066
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java Tue Jul  3 21:15:24 2007
@@ -33,11 +33,11 @@
 import javax.xml.soap.SOAPException;
 import javax.xml.transform.stream.StreamSource;
 import java.awt.image.BufferedImage;
+import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.io.PushbackInputStream;
 import java.util.Iterator;
 
 /**
@@ -390,11 +390,11 @@
     }
 
     public InputStream getBase64Content() throws SOAPException {
+        byte[] rawData = getRawContentBytes();
+        ByteArrayOutputStream out = new ByteArrayOutputStream();
         try {
-            if (dataHandler == null) {
-                throw new SOAPException();
-            }
-            return dataHandler.getInputStream();
+            Base64.encode(rawData, 0, rawData.length, out);
+            return new ByteArrayInputStream(out.toByteArray());
         } catch (IOException e) {
             throw new SOAPException(e);
         }
@@ -465,47 +465,21 @@
         if (content == null) {
             throw new SOAPException("Content is null");
         }
+        OutputStream outputStream = new ByteArrayOutputStream();
+        byte[] buffer = new byte[1024];
+        int read;
         try {
-            int size = content.available();
-            PushbackInputStream pushbackInputStream;
-            if (size > 0) {
-                pushbackInputStream = new PushbackInputStream(content, size);
-            } else {
-                pushbackInputStream = new PushbackInputStream(content);
+            while ((read = content.read(buffer, 0, buffer.length)) > 0) {
+                outputStream.write(buffer, 0, read);
             }
-
-            if (isValidBase64Encoding(pushbackInputStream)) {
-                setContent(pushbackInputStream, contentType);
+            String contentString = outputStream.toString();
+            if (Base64.isValidBase64Encoding(contentString)) {
+                setContent(Base64.decode(contentString), contentType);
             } else {
                 throw new SOAPException("Not a valid Base64 encoding");
             }
-        } catch (Exception ex) {
+        } catch (IOException ex) {
             throw new SOAPException(ex);
-        }
-    }
-
-    /*
-     * check if the given InputStream contains valid Base64 Encoding
-     */
-    private boolean isValidBase64Encoding(PushbackInputStream pushbackInputStream) {
-        int size;
-        try {
-            size = pushbackInputStream.available();
-            if (size == 0) {
-                return true;
-            }
-            byte[] buffer = new byte[size];
-            int read = pushbackInputStream.read(buffer, 0, size);
-
-            OutputStream outputStream = new ByteArrayOutputStream();
-            outputStream.write(buffer);
-            String contentString = outputStream.toString();
-            outputStream.close();
-            pushbackInputStream.unread(buffer, 0, read);
-
-            return Base64.isValidBase64Encoding(contentString);
-        } catch (Exception e) {
-            return false;
         }
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org