[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