[jboss-svn-commits] JBoss Common SVN: r2871 - in jbossxb/trunk/src: test/java/org/jboss/test/xml and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jun 19 10:27:53 EDT 2008


Author: dimitris at jboss.org
Date: 2008-06-19 10:27:53 -0400 (Thu, 19 Jun 2008)
New Revision: 2871

Modified:
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/SimpleTypeBindings.java
   jbossxb/trunk/src/test/java/org/jboss/test/xml/SoapEncUnitTestCase.java
Log:
JBXB-147, revert Revert JBXB-141 - xsd:double marshalled in exponential form

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/SimpleTypeBindings.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/SimpleTypeBindings.java	2008-06-19 14:24:55 UTC (rev 2870)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/SimpleTypeBindings.java	2008-06-19 14:27:53 UTC (rev 2871)
@@ -201,7 +201,7 @@
 
       public String marshal(Object value)
       {
-         return marshallDouble((Double)value);
+         return String.valueOf(value);
       }
    };
 
@@ -1080,7 +1080,19 @@
       }
       else if(typeCode == XS_DOUBLE)
       {
-         result = marshallDouble((Double)value);
+         Double d = (Double)value;
+         if(d.doubleValue() == Double.POSITIVE_INFINITY)
+         {
+            result = "INF";
+         }
+         else if(d.doubleValue() == Double.NEGATIVE_INFINITY)
+         {
+            result = "-INF";
+         }
+         else
+         {
+            result = d.toString();
+         }
       }
       else if(typeCode == XS_BOOLEAN)
       {
@@ -2248,31 +2260,6 @@
       return result;
    }
 
-   private static String marshallDouble(Double d)
-   {	   
-      String result;
-      if(d.doubleValue() == Double.POSITIVE_INFINITY)
-      {
-         result = "INF";
-      }
-      else if(d.doubleValue() == Double.NEGATIVE_INFINITY)
-      {
-         result = "-INF";
-      }
-      else
-      {
-         DecimalFormat df = new DecimalFormat();
-         df.setGroupingUsed(false);
-         df.setMinimumFractionDigits(1);
-         df.setMaximumFractionDigits(18);
-         df.setMinimumIntegerDigits(1);
-         df.setMaximumIntegerDigits(18);
-         
-         result = df.format(d.doubleValue());
-      }
-      return result;	   
-   }
-   
    private static char convertDigit(int value)
    {
       value &= 0x0f;

Modified: jbossxb/trunk/src/test/java/org/jboss/test/xml/SoapEncUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xml/SoapEncUnitTestCase.java	2008-06-19 14:24:55 UTC (rev 2870)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xml/SoapEncUnitTestCase.java	2008-06-19 14:27:53 UTC (rev 2871)
@@ -29,6 +29,7 @@
 import java.math.BigInteger;
 import java.net.URL;
 import java.util.Calendar;
+import java.util.Date;
 import java.util.GregorianCalendar;
 import java.util.Arrays;
 import java.util.TimeZone;
@@ -92,7 +93,7 @@
       "<varShort>-32768</varShort>" +
       "<varDecimal>3512359.1456</varDecimal>" +
       "<varFloat>1.4E-45</varFloat>" +
-      "<varDouble>0.0000000000000001</varDouble>" +
+      "<varDouble>4.9E-324</varDouble>" +
       "<varBoolean>false</varBoolean>" +
       "<varByte>-128</varByte>" +
       "<varQName xmlns=\"\">String2</varQName>" +
@@ -100,7 +101,7 @@
       "<varSoapString>String3</varSoapString>" +
       "<varSoapBoolean>false</varSoapBoolean>" +
       "<varSoapFloat>1.4E-45</varSoapFloat>" +
-      "<varSoapDouble>0.0000000000000001</varSoapDouble>" +
+      "<varSoapDouble>4.9E-324</varSoapDouble>" +
       "<varSoapDecimal>3512359.1111</varSoapDecimal>" +
       "<varSoapInt>-2147483648</varSoapInt>" +
       "<varSoapShort>-32768</varSoapShort>" +
@@ -198,7 +199,7 @@
          struct.setVarShort((short)Short.MIN_VALUE);
          struct.setVarDecimal(new BigDecimal("3512359.1456"));
          struct.setVarFloat((float)Float.MIN_VALUE);
-         struct.setVarDouble(0.0000000000000001);
+         struct.setVarDouble((double)Double.MIN_VALUE);
          struct.setVarBoolean(false);
          struct.setVarByte((byte)Byte.MIN_VALUE);
          struct.setVarQName(new QName("String2"));
@@ -219,7 +220,7 @@
          struct.setVarSoapString("String3");
          struct.setVarSoapBoolean(new Boolean(false));
          struct.setVarSoapFloat(new Float(Float.MIN_VALUE));
-         struct.setVarSoapDouble(new Double(0.0000000000000001));
+         struct.setVarSoapDouble(new Double(Double.MIN_VALUE));
          struct.setVarSoapDecimal(new BigDecimal("3512359.1111"));
          struct.setVarSoapInt(new Integer(Integer.MIN_VALUE));
          struct.setVarSoapShort(new Short(Short.MIN_VALUE));




More information about the jboss-svn-commits mailing list