Buggy code:
public class DoubleDatatypeValidator extends AbstractNumericValidator { public DoubleDatatypeValidator ( ) throws InvalidDatatypeFacetException { } public DoubleDatatypeValidator ( DatatypeValidator base , Hashtable facets , boolean derivedByList ) throws InvalidDatatypeFacetException { } public int compare ( String value1 , String value2 ) { } 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 checkContentEnum ( String content , Object state , Vector enumeration ) throws InvalidDatatypeValueException { } protected void checkContent ( String content , Object state , Vector enumeration , boolean asBase ) throws InvalidDatatypeValueException { <START_BUG> if ( ( this . fBaseValidator ) != null ) { <END_BUG> ( ( DoubleDatatypeValidator ) ( fBaseValidator ) ) . checkContent ( content , state , enumeration , true ) ; } if ( ( ( fFacetsDefined ) & ( DatatypeValidator . FACET_PATTERN ) ) != 0 ) { if ( ( ( fRegex ) == null ) || ( ( fRegex . matches ( content ) ) == false ) ) throw new InvalidDatatypeValueException ( ( ( ( "Value'" + content ) + "does<seq2seq4repair_space>not<seq2seq4repair_space>match<seq2seq4repair_space>regular<seq2seq4repair_space>expression<seq2seq4repair_space>facet" ) + ( fPattern ) ) ) ; } if ( asBase ) return ; Double d = null ; try { d = DoubleDatatypeValidator . dValueOf ( content ) ; } catch ( NumberFormatException nfe ) { String msg = getErrorString ( DatatypeMessageProvider . fgMessageKeys [ DatatypeMessageProvider . NOT_DOUBLE ] , new Object [ ] { content } ) ; throw new InvalidDatatypeValueException ( msg ) ; } if ( enumeration != null ) { int size = enumeration . size ( ) ; Double [ ] enumDoubles = new Double [ size ] ; int i = 0 ; try { for ( ; i < size ; i ++ ) enumDoubles [ i ] = DoubleDatatypeValidator . dValueOf ( ( ( String ) ( enumeration . elementAt ( i ) ) ) ) ; } catch ( NumberFormatException nfe ) { String msg = getErrorString ( DatatypeMessageProvider . fgMessageKeys [ DatatypeMessageProvider . INVALID_ENUM_VALUE ] , new Object [ ] { enumeration . elementAt ( i ) } ) ; throw new InvalidDatatypeValueException ( msg ) ; } enumCheck ( d . doubleValue ( ) , enumDoubles ) ; } boundsCheck ( d ) ; if ( ( ( ( fFacetsDefined ) & ( DatatypeValidator . FACET_ENUMERATION ) ) != 0 ) && ( ( fEnumeration ) != null ) ) enumCheck ( d . doubleValue ( ) , ( ( Double [ ] ) ( fEnumeration ) ) ) ; } protected int getInvalidFacetMsg ( ) { } private static Double dValueOf ( String s ) throws NumberFormatException { } private void enumCheck ( double v , Double [ ] enumDoubles ) throws InvalidDatatypeValueException { } private int compareDoubles ( double d1 , double d2 ) { } }

Fix:
if ( ( ( this . fBaseValidator ) != null ) && ( ! ( ( fBaseValidator ) instanceof AnySimpleType ) ) ) {