[jboss-svn-commits] JBoss Common SVN: r2177 - in jbossxb/trunk/src: main/java/org/jboss/xb/binding test/java/org/jboss/test/xml

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Nov 24 09:22:48 EST 2006


Author: darran.lofthouse at jboss.com
Date: 2006-11-24 09:22:45 -0500 (Fri, 24 Nov 2006)
New Revision: 2177

Modified:
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/SimpleTypeBindings.java
   jbossxb/trunk/src/test/java/org/jboss/test/xml/SimpleTypeBindingUnitTestCase.java
Log:
JBXB-89 - Do not automatically unzip GZipped content when unmarshalling Base64Binary.


Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/SimpleTypeBindings.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/SimpleTypeBindings.java	2006-11-20 14:25:25 UTC (rev 2176)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/SimpleTypeBindings.java	2006-11-24 14:22:45 UTC (rev 2177)
@@ -21,25 +21,27 @@
   */
 package org.jboss.xb.binding;
 
-import org.jboss.logging.Logger;
-import org.jboss.util.Base64;
-
-import javax.xml.namespace.QName;
-import javax.xml.namespace.NamespaceContext;
 import java.io.ByteArrayOutputStream;
 import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.net.URISyntaxException;
 import java.text.DecimalFormat;
 import java.text.ParseException;
+import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.List;
 import java.util.StringTokenizer;
 import java.util.TimeZone;
-import java.util.List;
-import java.util.ArrayList;
 
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.namespace.QName;
 
+import org.jboss.logging.Logger;
+import org.jboss.util.Base64;
+
+
 /**
  * @author <a href="mailto:alex at jboss.org">Alexey Loubyansky</a>
  * @author Thomas.Diesler at jboss.org
@@ -1953,7 +1955,18 @@
     */
    public static byte[] unmarshalBase64(String value)
    {
-      return Base64.decode(value);
+      byte[] valueBytes;
+
+      try
+      {
+         valueBytes = value.getBytes("UTF-8");
+      }
+      catch (UnsupportedEncodingException e)
+      {
+         valueBytes = value.getBytes();
+      }
+
+      return Base64.decode(valueBytes, 0, valueBytes.length);
    }
 
    /**

Modified: jbossxb/trunk/src/test/java/org/jboss/test/xml/SimpleTypeBindingUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xml/SimpleTypeBindingUnitTestCase.java	2006-11-20 14:25:25 UTC (rev 2176)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xml/SimpleTypeBindingUnitTestCase.java	2006-11-24 14:22:45 UTC (rev 2177)
@@ -488,4 +488,28 @@
       assertNotNull(marshalled);
       assertEquals("true true false true", marshalled);
    }
+   
+   public void testBase64BinaryUnmarshalling() throws Exception
+   {
+      byte[] unmarshalled = (byte[]) SimpleTypeBindings.unmarshal("base64Binary", "VGVzdCBNZXNzYWdl", null);
+
+      assertEquals("Test Message", new String(unmarshalled));
+   }
+
+   public void testBase64BinaryGZippedUnmarshalling() throws Exception
+   {
+      // GZipped content should NOT be automatically unzipped.
+      byte[] unmarshalled = (byte[]) SimpleTypeBindings.unmarshal("base64Binary",
+            "H4sIAAAAAAAAAAtJLS5R8E0tLk5MTwUA74UAyAwAAAA=", null);
+
+      assertEquals(32, unmarshalled.length);
+      assertFalse("Test Message".equals(new String(unmarshalled)));
+   }
+
+   public void testBase64BinaryMarshalling() throws Exception
+   {
+      String marshalled = SimpleTypeBindings.marshal("base64Binary", "Test Message".getBytes(), null);
+
+      assertEquals("VGVzdCBNZXNzYWdl", marshalled);
+   }   
 }




More information about the jboss-svn-commits mailing list