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]