Buggy code:
public abstract class DateTimeValidator extends AbstractNumericFacetValidator { private static final boolean DEBUG = false ; protected static final int CY = 0 ; protected static final int M = 1 ; protected static final int D = 2 ; protected static final int h = 3 ; protected static final int m = 4 ; protected static final int s = 5 ; protected static final int ms = 6 ; protected static final int utc = 7 ; protected static final int hh = 0 ; protected static final int mm = 1 ; protected static final short LESS_THAN = - 1 ; protected static final short EQUAL = 0 ; protected static final short GREATER_THAN = 1 ; protected static final int TOTAL_SIZE = 8 ; protected static final int MONTH_SIZE = 6 ; private static final int YEARMONTH_SIZE = 7 ; protected static final int YEAR = 2000 ; protected static final int MONTH = 1 ; protected static final int DAY = 15 ; protected int [ ] timeZone ; protected int fEnumSize ; protected int fEnd ; protected int fStart ; protected StringBuffer fBuffer ; protected int [ ] fDateValue ; private int [ ] fTempDate ; protected StringBuffer message ; public DateTimeValidator ( ) { } public DateTimeValidator ( DatatypeValidator base , Hashtable facets , boolean derivedByList , XMLErrorReporter reporter ) { } protected void initializeValues ( ) { } protected void assignAdditionalFacets ( String key , Hashtable facets ) throws InvalidDatatypeFacetException { } protected int compareValues ( Object value1 , Object value2 ) { } protected void setMaxInclusive ( String value ) { } protected void setMinInclusive ( String value ) { } protected void setMaxExclusive ( String value ) { } protected void setMinExclusive ( String value ) { } protected void setEnumeration ( Vector enumeration ) throws InvalidDatatypeValueException { } protected String getMaxInclusive ( boolean isBase ) { } protected String getMinInclusive ( boolean isBase ) { } protected String getMaxExclusive ( boolean isBase ) { } protected String getMinExclusive ( boolean isBase ) { } protected void checkContent ( String content , Object State ) { } protected abstract int [ ] parse ( String content , int [ ] date ) throws SchemaDateTimeException { } <START_BUG> public Object validate ( String content , Object state ) throws InvalidDatatypeValueException { <END_BUG> try { resetDateObj ( fDateValue ) ; parse ( content , fDateValue ) ; } catch ( RuntimeException e ) { throw new InvalidDatatypeValueException ( ( ( ( "Value<seq2seq4repair_space>'" + content ) + "'<seq2seq4repair_space>is<seq2seq4repair_space>not<seq2seq4repair_space>legal<seq2seq4repair_space>value<seq2seq4repair_space>for<seq2seq4repair_space>current<seq2seq4repair_space>datatype.<seq2seq4repair_space>" ) + ( e . getMessage ( ) ) ) ) ; } validateDate ( fDateValue , content ) ; return null ; } protected void validateDate ( int [ ] date , String content ) throws InvalidDatatypeValueException { } public int compare ( String content1 , String content2 ) { } public Object clone ( ) throws CloneNotSupportedException { } protected short compareDates ( int [ ] date1 , int [ ] date2 , boolean strict ) { } protected short compareOrder ( int [ ] date1 , int [ ] date2 ) { } protected void getTime ( int start , int end , int [ ] data ) throws RuntimeException { } protected void getDate ( int start , int end , int [ ] date ) throws RuntimeException { } protected void getYearMonth ( int start , int end , int [ ] date ) throws RuntimeException { } protected void parseTimeZone ( int end , int [ ] date ) throws RuntimeException { } protected void getTimeZone ( int [ ] data , int sign ) throws RuntimeException { } protected int indexOf ( int start , int end , char ch ) { } protected void validateDateTime ( int [ ] data ) { } protected int findUTCSign ( int start , int end ) { } protected int parseInt ( int start , int end ) throws NumberFormatException { } protected int parseIntYear ( int end ) { } protected void normalize ( int [ ] date ) { } protected void resetBuffer ( String str ) { } protected void resetDateObj ( int [ ] data ) { } protected int maxDayInMonthFor ( int year , int month ) { } private boolean isLeapYear ( int year ) { } protected int mod ( int a , int b , int quotient ) { } protected int fQuotient ( int a , int b ) { } protected int modulo ( int temp , int low , int high ) { } protected int fQuotient ( int temp , int low , int high ) { } protected String dateToString ( int [ ] date ) { } protected void reportError ( String msg , String value ) { } private void cloneDate ( int [ ] finalValue ) { } }

Fix:
public Object validate ( String content , ValidationContext state ) throws InvalidDatatypeValueException {