You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xmlbeans.apache.org by ce...@apache.org on 2009/06/05 00:37:20 UTC

svn commit: r781862 - in /xmlbeans/trunk/src: typeimpl/org/apache/xmlbeans/impl/values/JavaQNameHolder.java xmlpublic/org/apache/xmlbeans/GDate.java xmlpublic/org/apache/xmlbeans/GDateBuilder.java xmlpublic/org/apache/xmlbeans/GDuration.java

Author: cezar
Date: Thu Jun  4 22:37:19 2009
New Revision: 781862

URL: http://svn.apache.org/viewvc?rev=781862&view=rev
Log:
Various fixes:
 - more validation checks for dates with year starting with 0.
 - for durations without containing any fields
 - for normalization of dateTime with hour 24.
 - for including prefix when validating QNames.
 

Modified:
    xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/values/JavaQNameHolder.java
    xmlbeans/trunk/src/xmlpublic/org/apache/xmlbeans/GDate.java
    xmlbeans/trunk/src/xmlpublic/org/apache/xmlbeans/GDateBuilder.java
    xmlbeans/trunk/src/xmlpublic/org/apache/xmlbeans/GDuration.java

Modified: xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/values/JavaQNameHolder.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/values/JavaQNameHolder.java?rev=781862&r1=781861&r2=781862&view=diff
==============================================================================
--- xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/values/JavaQNameHolder.java (original)
+++ xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/values/JavaQNameHolder.java Thu Jun  4 22:37:19 2009
@@ -142,7 +142,10 @@
             uri = "";
         }
 
-        return new QName( uri, localname );
+        if ( prefix!=null && prefix.length()>0 )
+            return new QName(uri, localname, prefix );
+        else
+            return new QName( uri, localname );
     }
     
     protected void set_text(String s)

Modified: xmlbeans/trunk/src/xmlpublic/org/apache/xmlbeans/GDate.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/xmlpublic/org/apache/xmlbeans/GDate.java?rev=781862&r1=781861&r2=781862&view=diff
==============================================================================
--- xmlbeans/trunk/src/xmlpublic/org/apache/xmlbeans/GDate.java (original)
+++ xmlbeans/trunk/src/xmlpublic/org/apache/xmlbeans/GDate.java Thu Jun  4 22:37:19 2009
@@ -128,11 +128,17 @@
             int value = 0;
             int digits = -start;
             char ch;
+            boolean startsWithZero = start < len && digitVal(string.charAt(start))==0;
+
             for (;;)
             {
                 ch = start < len ? string.charAt(start) : '\0';
                 if (!isDigit(ch))
                     break;
+                
+                if ( startsWithZero && start+digits>=4 )
+                    throw new IllegalArgumentException("year value starting with zero must be 4 or less digits: " + string);
+
                 value = value * 10 + digitVal(ch);
                 start += 1;
             }

Modified: xmlbeans/trunk/src/xmlpublic/org/apache/xmlbeans/GDateBuilder.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/xmlpublic/org/apache/xmlbeans/GDateBuilder.java?rev=781862&r1=781861&r2=781862&view=diff
==============================================================================
--- xmlbeans/trunk/src/xmlpublic/org/apache/xmlbeans/GDateBuilder.java (original)
+++ xmlbeans/trunk/src/xmlpublic/org/apache/xmlbeans/GDateBuilder.java Thu Jun  4 22:37:19 2009
@@ -602,7 +602,7 @@
         // DateTime or Time, with TimeZone: normalize to UTC.
         // In the process all the fields will be normalized.
         if (hasDay() == hasMonth() && hasDay() == hasYear() &&
-            hasTimeZone() && hasTime())
+            hasTimeZone() && hasTime() && getHour()!=24 )
         {
             normalizeToTimeZone(0, 0, 0);
         }

Modified: xmlbeans/trunk/src/xmlpublic/org/apache/xmlbeans/GDuration.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/xmlpublic/org/apache/xmlbeans/GDuration.java?rev=781862&r1=781861&r2=781862&view=diff
==============================================================================
--- xmlbeans/trunk/src/xmlpublic/org/apache/xmlbeans/GDuration.java (original)
+++ xmlbeans/trunk/src/xmlpublic/org/apache/xmlbeans/GDuration.java Thu Jun  4 22:37:19 2009
@@ -196,6 +196,9 @@
                     throw new IllegalArgumentException("duration must specify Y M D T H M S in order");
             }
         }
+
+        if ( seen == SEEN_NOTHING )
+            throw new IllegalArgumentException("duration must contain at least one number and its designator: " + str);
     }
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: commits-help@xmlbeans.apache.org