Buggy code:
public abstract class AbstractSAXParser extends AbstractXMLDocumentParser implements Parser , XMLReader { protected static final String NAMESPACES = ( Constants . SAX_FEATURE_PREFIX ) + ( Constants . NAMESPACES_FEATURE ) ; protected static final String NAMESPACE_PREFIXES = ( Constants . SAX_FEATURE_PREFIX ) + ( Constants . NAMESPACE_PREFIXES_FEATURE ) ; protected static final String NORMALIZE_DATA = ( Constants . XERCES_FEATURE_PREFIX ) + ( Constants . SCHEMA_NORMALIZED_VALUE ) ; protected static final String STRING_INTERNING = ( Constants . SAX_FEATURE_PREFIX ) + ( Constants . STRING_INTERNING_FEATURE ) ; private static final String [ ] RECOGNIZED_FEATURES = new String [ ] { AbstractSAXParser . NAMESPACES , AbstractSAXParser . NAMESPACE_PREFIXES , AbstractSAXParser . NORMALIZE_DATA , AbstractSAXParser . STRING_INTERNING } ; protected static final String LEXICAL_HANDLER = ( Constants . SAX_PROPERTY_PREFIX ) + ( Constants . LEXICAL_HANDLER_PROPERTY ) ; protected static final String DECLARATION_HANDLER = ( Constants . SAX_PROPERTY_PREFIX ) + ( Constants . DECLARATION_HANDLER_PROPERTY ) ; protected static final String DOM_NODE = ( Constants . SAX_PROPERTY_PREFIX ) + ( Constants . DOM_NODE_PROPERTY ) ; private static final String [ ] RECOGNIZED_PROPERTIES = new String [ ] { AbstractSAXParser . LEXICAL_HANDLER , AbstractSAXParser . DECLARATION_HANDLER , AbstractSAXParser . DOM_NODE } ; protected boolean fNamespaces ; protected boolean fNamespacePrefixes = false ; protected boolean fNormalizeData = true ; protected ContentHandler fContentHandler ; protected DocumentHandler fDocumentHandler ; protected DTDHandler fDTDHandler ; protected DeclHandler fDeclHandler ; protected LexicalHandler fLexicalHandler ; protected QName fQName = new QName ( ) ; protected boolean fParseInProgress = false ; private final AbstractSAXParser . AttributesProxy fAttributesProxy = new AbstractSAXParser . AttributesProxy ( ) ; private static final int BUFFER_SIZE = 20 ; private char [ ] fCharBuffer = new char [ AbstractSAXParser . BUFFER_SIZE ] ; protected AbstractSAXParser ( XMLParserConfiguration config ) { } public void startDocument ( XMLLocator locator , String encoding , Augmentations augs ) throws XNIException { } public void doctypeDecl ( String rootElement , String publicId , String systemId , Augmentations augs ) throws XNIException { } public void startGeneralEntity ( String name , XMLResourceIdentifier identifier , String encoding , Augmentations augs ) throws XNIException { } public void endGeneralEntity ( String name , Augmentations augs ) throws XNIException { } public void startPrefixMapping ( String prefix , String uri , Augmentations augs ) throws XNIException { } public void startElement ( QName element , XMLAttributes attributes , Augmentations augs ) throws XNIException { try { if ( ( fDocumentHandler ) != null ) { fAttributesProxy . setAttributes ( attributes ) ; fDocumentHandler . startElement ( element . rawname , fAttributesProxy ) ; } if ( ( fContentHandler ) != null ) { int len = attributes . getLength ( ) ; for ( int i = len - 1 ; i >= 0 ; i -- ) { attributes . getName ( i , fQName ) ; if ( fNormalizeData ) { AttributePSVI attrPSVI = ( ( AttributePSVI ) ( attributes . getAugmentations ( i ) . getItem ( ATTRIBUTE_PSVI ) ) ) ; <START_BUG> if ( ( attrPSVI != null ) && ( ( attrPSVI . getValidationAttempted ( ) ) == ( AttributePSVI . FULL_VALIDATION ) ) ) { <END_BUG> attributes . setValue ( i , attrPSVI . getSchemaNormalizedValue ( ) ) ; } } if ( ( ( ( fQName . prefix ) != null ) && ( fQName . prefix . equals ( "xmlns" ) ) ) || ( fQName . rawname . equals ( "xmlns" ) ) ) { if ( ! ( fNamespacePrefixes ) ) { attributes . removeAttributeAt ( i ) ; } if ( ( fNamespaces ) && ( fNamespacePrefixes ) ) { fQName . prefix = "" ; fQName . uri = "" ; fQName . localpart = "" ; attributes . setName ( i , fQName ) ; } } } String uri = ( ( element . uri ) != null ) ? element . uri : "" ; String localpart = ( fNamespaces ) ? element . localpart : "" ; fAttributesProxy . setAttributes ( attributes ) ; fContentHandler . startElement ( uri , localpart , element . rawname , fAttributesProxy ) ; } } catch ( SAXException e ) { throw new XNIException ( e ) ; } } public void characters ( XMLString text , Augmentations augs ) throws XNIException { } public void ignorableWhitespace ( XMLString text , Augmentations augs ) throws XNIException { } public void endElement ( QName element , Augmentations augs ) throws XNIException { } public void endPrefixMapping ( String prefix , Augmentations augs ) throws XNIException { } public void startCDATA ( Augmentations augs ) throws XNIException { } public void endCDATA ( Augmentations augs ) throws XNIException { } public void comment ( XMLString text , Augmentations augs ) throws XNIException { } public void processingInstruction ( String target , XMLString data , Augmentations augs ) throws XNIException { } public void endDocument ( Augmentations augs ) throws XNIException { } public void startExternalSubset ( XMLResourceIdentifier identifier , Augmentations augs ) throws XNIException { } public void endExternalSubset ( Augmentations augs ) throws XNIException { } public void startParameterEntity ( String name , XMLResourceIdentifier identifier , String encoding , Augmentations augs ) throws XNIException { } public void endParameterEntity ( String name , Augmentations augs ) throws XNIException { } public void elementDecl ( String name , String contentModel , Augmentations augs ) throws XNIException { } public void attributeDecl ( String elementName , String attributeName , String type , String [ ] enumeration , String defaultType , XMLString defaultValue , XMLString nonNormalizedDefaultValue , Augmentations augs ) throws XNIException { } public void internalEntityDecl ( String name , XMLString text , XMLString nonNormalizedText , Augmentations augs ) throws XNIException { } public void externalEntityDecl ( String name , XMLResourceIdentifier identifier , Augmentations augs ) throws XNIException { } public void unparsedEntityDecl ( String name , XMLResourceIdentifier identifier , String notation , Augmentations augs ) throws XNIException { }

Fix:
if ( ( attrPSVI != null ) && ( ( attrPSVI . getValidationAttempted ( ) ) == ( AttributePSVI . VALIDATION_FULL ) ) ) {