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