Author: jochen
Date: Wed May 10 02:39:46 2006
New Revision: 405692

URL: http://svn.apache.org/viewcvs?rev=405692&view=rev
Log:
The classes XsDateTimeFormat, and XsTimeFormat have been parsing the 
milliseconds wrong,
if the string contained less than three digits.

Modified:
    webservices/jaxme/branches/MAVEN/.classpath
    
webservices/jaxme/branches/MAVEN/projects/xs/src/main/java/org/apache/ws/jaxme/xs/util/XsDateTimeFormat.java
    
webservices/jaxme/branches/MAVEN/projects/xs/src/test/java/org/apache/ws/jaxme/xs/junit/FormatTest.java
    webservices/jaxme/branches/MAVEN/projects/xs/xdocs/changes.xml

Modified: webservices/jaxme/branches/MAVEN/.classpath
URL: 
http://svn.apache.org/viewcvs/webservices/jaxme/branches/MAVEN/.classpath?rev=405692&r1=405691&r2=405692&view=diff
==============================================================================
--- webservices/jaxme/branches/MAVEN/.classpath (original)
+++ webservices/jaxme/branches/MAVEN/.classpath Wed May 10 02:39:46 2006
@@ -22,5 +22,6 @@
        <classpathentry kind="src" path="projects/xs/src/main/java"/>
        <classpathentry kind="src" path="projects/xs/src/test/java"/>
        <classpathentry kind="src" path="projects/jm/target/test-classes"/>
+       <classpathentry kind="src" path="projects/pm/target/test-classes"/>
        <classpathentry kind="output" path="bin"/>
 </classpath>

Modified: 
webservices/jaxme/branches/MAVEN/projects/xs/src/main/java/org/apache/ws/jaxme/xs/util/XsDateTimeFormat.java
URL: 
http://svn.apache.org/viewcvs/webservices/jaxme/branches/MAVEN/projects/xs/src/main/java/org/apache/ws/jaxme/xs/util/XsDateTimeFormat.java?rev=405692&r1=405691&r2=405692&view=diff
==============================================================================
--- 
webservices/jaxme/branches/MAVEN/projects/xs/src/main/java/org/apache/ws/jaxme/xs/util/XsDateTimeFormat.java
 (original)
+++ 
webservices/jaxme/branches/MAVEN/projects/xs/src/main/java/org/apache/ws/jaxme/xs/util/XsDateTimeFormat.java
 Wed May 10 02:39:46 2006
@@ -172,6 +172,13 @@
                    offset = parseInt(pString, offset, digits);
                    if (digits.length() > 0) {
                        millis = Integer.parseInt(digits.toString());
+                    if (millis > 999) {
+                        pParsePosition.setErrorIndex(offset);
+                        return null;
+                    }
+                    for (int i = digits.length();  i < 3;  i++) {
+                        millis *= 10;
+                    }
                    } else {
                        millis = 0;
                    }

Modified: 
webservices/jaxme/branches/MAVEN/projects/xs/src/test/java/org/apache/ws/jaxme/xs/junit/FormatTest.java
URL: 
http://svn.apache.org/viewcvs/webservices/jaxme/branches/MAVEN/projects/xs/src/test/java/org/apache/ws/jaxme/xs/junit/FormatTest.java?rev=405692&r1=405691&r2=405692&view=diff
==============================================================================
--- 
webservices/jaxme/branches/MAVEN/projects/xs/src/test/java/org/apache/ws/jaxme/xs/junit/FormatTest.java
 (original)
+++ 
webservices/jaxme/branches/MAVEN/projects/xs/src/test/java/org/apache/ws/jaxme/xs/junit/FormatTest.java
 Wed May 10 02:39:46 2006
@@ -16,6 +16,7 @@
  */
 package org.apache.ws.jaxme.xs.junit;
 
+import java.text.Format;
 import java.text.ParseException;
 import java.util.Calendar;
 import java.util.TimeZone;
@@ -181,5 +182,19 @@
         expect = getCalendar(TimeZone.getTimeZone("GMT-03:00"));
         Calendar got = (Calendar) format.parseObject(dateTime);
         assertEqualTime(expect, got);
+    }
+
+    /** Tests, whether e zero as suffix matters in milliseconds.
+     */
+    public void testZeroSuffix() throws Exception {
+        Format format = new XsDateTimeFormat();
+        Calendar c1 = (Calendar) format.parseObject("2006-05-03T15:29:17.15Z");
+        Calendar c2 = (Calendar) 
format.parseObject("2006-05-03T15:29:17.150Z");
+        assertEquals(c1, c2);
+
+        format = new XsTimeFormat();
+        c1 = (Calendar) format.parseObject("15:29:17.15Z");
+        c2 = (Calendar) format.parseObject("15:29:17.150Z");
+        assertEquals(c1, c2);
     }
 }

Modified: webservices/jaxme/branches/MAVEN/projects/xs/xdocs/changes.xml
URL: 
http://svn.apache.org/viewcvs/webservices/jaxme/branches/MAVEN/projects/xs/xdocs/changes.xml?rev=405692&r1=405691&r2=405692&view=diff
==============================================================================
--- webservices/jaxme/branches/MAVEN/projects/xs/xdocs/changes.xml (original)
+++ webservices/jaxme/branches/MAVEN/projects/xs/xdocs/changes.xml Wed May 10 
02:39:46 2006
@@ -20,7 +20,13 @@
                <title>Releases</title>
        </properties>
        <body>
-       <release version="0.5" date="Not yet published">
+       <release version="0.6-dev" date="Not yet published">
+      <action dev="JW" type="fix" context="xs">
+        The classes XsDateTimeFormat, and XsTimeFormat have been parsing the 
milliseconds wrong,
+        if the string contained less than three digits.
+      </action>
+       </release>
+       <release version="0.5" date="2005-Aug-08">
        </release>
        <release version="0.5beta" date="2005-Jul-13">
        </release>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to