Buggy code:
public abstract class XMLScanner implements XMLComponent { protected static final String VALIDATION = ( Constants . SAX_FEATURE_PREFIX ) + ( Constants . VALIDATION_FEATURE ) ; protected static final String NAMESPACES = ( Constants . SAX_FEATURE_PREFIX ) + ( Constants . NAMESPACES_FEATURE ) ; protected static final String NOTIFY_CHAR_REFS = ( Constants . XERCES_FEATURE_PREFIX ) + ( Constants . NOTIFY_CHAR_REFS_FEATURE ) ; protected static final String PARSER_SETTINGS = ( Constants . XERCES_FEATURE_PREFIX ) + ( Constants . PARSER_SETTINGS ) ; protected static final String SYMBOL_TABLE = ( Constants . XERCES_PROPERTY_PREFIX ) + ( Constants . SYMBOL_TABLE_PROPERTY ) ; protected static final String ERROR_REPORTER = ( Constants . XERCES_PROPERTY_PREFIX ) + ( Constants . ERROR_REPORTER_PROPERTY ) ; protected static final String ENTITY_MANAGER = ( Constants . XERCES_PROPERTY_PREFIX ) + ( Constants . ENTITY_MANAGER_PROPERTY ) ; protected static final boolean DEBUG_ATTR_NORMALIZATION = false ; protected boolean fValidation = false ; protected boolean fNamespaces ; protected boolean fNotifyCharRefs = false ; protected boolean fParserSettings = true ; protected SymbolTable fSymbolTable ; protected XMLErrorReporter fErrorReporter ; protected XMLEntityManager fEntityManager ; protected XMLEntityScanner fEntityScanner ; protected int fEntityDepth ; protected String fCharRefLiteral = null ; protected boolean fScanningAttribute ; protected boolean fReportEntity ; protected static final String fVersionSymbol = "version" . intern ( ) ; protected static final String fEncodingSymbol = "encoding" . intern ( ) ; protected static final String fStandaloneSymbol = "standalone" . intern ( ) ; protected static final String fAmpSymbol = "amp" . intern ( ) ; protected static final String fLtSymbol = "lt" . intern ( ) ; protected static final String fGtSymbol = "gt" . intern ( ) ; protected static final String fQuotSymbol = "quot" . intern ( ) ; protected static final String fAposSymbol = "apos" . intern ( ) ; private final XMLString fString = new XMLString ( ) ; private final XMLStringBuffer fStringBuffer = new XMLStringBuffer ( ) ; private final XMLStringBuffer fStringBuffer2 = new XMLStringBuffer ( ) ; private final XMLStringBuffer fStringBuffer3 = new XMLStringBuffer ( ) ; protected final XMLResourceIdentifierImpl fResourceIdentifier = new XMLResourceIdentifierImpl ( ) ; public void reset ( XMLComponentManager componentManager ) throws XMLConfigurationException { } public void setProperty ( String propertyId , Object value ) throws XMLConfigurationException { } public void setFeature ( String featureId , boolean value ) throws XMLConfigurationException { } public boolean getFeature ( String featureId ) throws XMLConfigurationException { } protected void reset ( ) { } protected void scanXMLDeclOrTextDecl ( boolean scanningTextDecl , String [ ] pseudoAttributeValues ) throws IOException , XNIException { } public String scanPseudoAttribute ( boolean scanningTextDecl , XMLString value ) throws IOException , XNIException { } protected void scanPI ( ) throws IOException , XNIException { } protected void scanPIData ( String target , XMLString data ) throws IOException , XNIException { if ( ( target . length ( ) ) == 3 ) { char c0 = Character . toLowerCase ( target . charAt ( 0 ) ) ; char c1 = Character . toLowerCase ( target . charAt ( 1 ) ) ; char c2 = Character . toLowerCase ( target . charAt ( 2 ) ) ; if ( ( ( c0 == 'x' ) && ( c1 == 'm' ) ) && ( c2 == 'l' ) ) { reportFatalError ( "ReservedPITarget" , null ) ; } } if ( ! ( fEntityScanner . skipSpaces ( ) ) ) { if ( fEntityScanner . skipString ( "?>" ) ) { data . clear ( ) ; return ; } else { if ( ( fNamespaces ) && ( ( fEntityScanner . peekChar ( ) ) == ':' ) ) { fEntityScanner . scanChar ( ) ; XMLStringBuffer colonName = new XMLStringBuffer ( target ) ; <START_BUG> colonName . append ( ":" ) ; <END_BUG> String str = fEntityScanner . scanName ( ) ; if ( str != null ) colonName . append ( str ) ; reportFatalError ( "ColonNotLegalWithNS" , new Object [ ] { colonName . toString ( ) } ) ; fEntityScanner . skipSpaces ( ) ; } else { reportFatalError ( "SpaceRequiredInPI" , null ) ; } } } fStringBuffer . clear ( ) ; if ( fEntityScanner . scanData ( "?>" , fStringBuffer ) ) { do { int c = fEntityScanner . peekChar ( ) ; if ( c != ( - 1 ) ) { if ( XMLChar . isHighSurrogate ( c ) ) { scanSurrogates ( fStringBuffer ) ; } else if ( isInvalidLiteral ( c ) ) { reportFatalError ( "InvalidCharInPI" , new Object [ ] { Integer . toHexString ( c ) } ) ; fEntityScanner . scanChar ( ) ; } } } while ( fEntityScanner . scanData ( "?>" , fStringBuffer ) ) ; } data . setValues ( fStringBuffer ) ; } protected void scanComment ( XMLStringBuffer text ) throws IOException , XNIException { } protected boolean scanAttributeValue ( XMLString value , XMLString nonNormalizedValue , String atName , boolean checkEntities , String eleName ) throws IOException , XNIException { } protected void scanExternalID ( String [ ] identifiers , boolean optionalSystemId ) throws IOException , XNIException { } protected boolean scanPubidLiteral ( XMLString literal ) throws IOException , XNIException { } protected void normalizeWhitespace ( XMLString value ) { } protected void normalizeWhitespace ( XMLString value , int fromIndex ) { } protected int isUnchangedByNormalization ( XMLString value ) { } public void startEntity ( String name , XMLResourceIdentifier identifier , String encoding , Augmentations augs ) throws XNIException { } public void endEntity ( String name , Augmentations augs ) throws XNIException { } protected int scanCharReferenceValue ( XMLStringBuffer buf , XMLStringBuffer buf2 ) throws IOException , XNIException { } protected boolean isInvalid ( int value ) { } protected boolean isInvalidLiteral ( int value ) { } protected boolean isValidNameChar ( int value ) { } protected boolean isValidNameStartChar ( int value ) { } protected boolean isValidNCName ( int value ) { } protected boolean isValidNameStartHighSurrogate ( int value ) { }

Fix:
colonName . append ( ':' ) ;