This is an automated email from the ASF dual-hosted git repository.

billblough pushed a commit to branch 1_5
in repository https://gitbox.apache.org/repos/asf/axis-axis2-java-core.git
commit b29d549a9566470d3d5c805060ca6617466133a7
Author: Sagara Gunathunga <sag...@apache.org>
AuthorDate: Tue Oct 18 07:23:43 2011 +0000

    Merged r1185504 to the 1.5  branch.
---
 .../axis2/databinding/utils/ConverterUtil.java     | 34 ++++++++++++++--------
 .../axis2/databinding/utils/ConverterUtilTest.java | 15 ++++++++++
 2 files changed, 37 insertions(+), 12 deletions(-)

diff --git 
a/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java 
b/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java
index ad98668..9968867 100644
--- a/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java
+++ b/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java
@@ -73,6 +73,7 @@ import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
+import java.io.IOException;
 import java.lang.reflect.Array;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
@@ -1316,18 +1317,27 @@ public class ConverterUtil {
      *
      * @return string
      */
-    public static String getStringFromDatahandler(DataHandler dataHandler) {
-        try {
-            InputStream inStream;
-            if (dataHandler == null) {
-                return "";
-            }
-            inStream = dataHandler.getDataSource().getInputStream();
-            byte[] data = IOUtils.getStreamAsByteArray(inStream);
-            return Base64.encode(data);
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        }
+       public static String getStringFromDatahandler(DataHandler dataHandler) {
+               InputStream inStream = null;
+               try {
+                       if (dataHandler == null) {
+                               return "";
+                       }
+                       inStream = dataHandler.getDataSource().getInputStream();
+                       byte[] data = IOUtils.getStreamAsByteArray(inStream);
+                       return Base64.encode(data);
+               } catch (Exception e) {
+                       throw new RuntimeException(e);
+
+               } finally {
+                       try {
+                               if (inStream != null)
+                                       inStream.close();
+                       } catch (IOException e) {
+                               e.printStackTrace();
+                       }
+
+               }
     }
 
     /**
diff --git 
a/modules/adb/test/org/apache/axis2/databinding/utils/ConverterUtilTest.java 
b/modules/adb/test/org/apache/axis2/databinding/utils/ConverterUtilTest.java
index 63d47ba..fc5ef08 100644
--- a/modules/adb/test/org/apache/axis2/databinding/utils/ConverterUtilTest.java
+++ b/modules/adb/test/org/apache/axis2/databinding/utils/ConverterUtilTest.java
@@ -29,6 +29,12 @@ import java.util.Date;
 import java.util.List;
 import java.util.TimeZone;
 
+import javax.activation.DataHandler;
+import javax.activation.DataSource;
+
+import org.apache.axiom.attachments.ByteArrayDataSource;
+import org.apache.axiom.om.util.Base64;
+
 public class ConverterUtilTest extends TestCase {
 
     /** Test conversion of Big Integer */
@@ -165,4 +171,13 @@ public class ConverterUtilTest extends TestCase {
         
     }
 
+            
+       public void testConvertToStringFromDataHandler() {
+               String inStr = "Sample Data";
+               DataSource ds = new ByteArrayDataSource(inStr.getBytes());
+               DataHandler dh = new DataHandler(ds);
+               String rawOutStr = ConverterUtil.convertToString(dh);
+               String outStr = new String(Base64.decode(rawOutStr));
+               assertEquals("Not expected content", inStr, outStr);
+       }
 }

Reply via email to