sandygao    2003/02/21 09:00:13

  Modified:    java/src/org/apache/xerces/impl/dv/xs
                        AbstractDateTimeDV.java
  Log:
  Fixing bug 17020: didn't report error on some invalid date/time literals.
  
  Revision  Changes    Path
  1.9       +13 -4     
xml-xerces/java/src/org/apache/xerces/impl/dv/xs/AbstractDateTimeDV.java
  
  Index: AbstractDateTimeDV.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/AbstractDateTimeDV.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- AbstractDateTimeDV.java   16 Jan 2003 18:34:03 -0000      1.8
  +++ AbstractDateTimeDV.java   21 Feb 2003 17:00:11 -0000      1.9
  @@ -245,11 +245,15 @@
           stop = stop+2;
           data[s]=parseInt(buffer, start,stop);
   
  +        if (stop == end)
  +            return;
  +        
           //get miliseconds (ms)
  -        int milisec = indexOf(buffer, start, end, '.');
  +        start = stop;
  +        int milisec = buffer.charAt(start) == '.' ? start : -1;
   
           //find UTC sign if any
  -        int sign = findUTCSign(buffer, (milisec!=-1)?milisec:start, end);
  +        int sign = findUTCSign(buffer, start, end);
   
           //parse miliseconds
           if ( milisec != -1 ) {
  @@ -257,12 +261,14 @@
               if ( sign<0 ) {
   
                   //get all digits after "."
  -                data[ms]=parseInt(buffer, milisec+1, buffer.length());
  +                data[ms]=parseInt(buffer, milisec+1, end);
  +                start = end;
               }
               else {
   
                   //get ms before UTC sign
                   data[ms]=parseInt(buffer, milisec+1,sign);
  +                start = sign;
               }
   
           }
  @@ -270,6 +276,9 @@
           //parse UTC time zone (hh:mm)
           if ( sign>0 ) {
               getTimeZone(buffer, data, sign, end, timeZone);
  +        }
  +        else if (start != end) {
  +            throw new RuntimeException("Error in parsing time zone" );
           }
       }
   
  
  
  

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

Reply via email to