Buggy code:
public class XMLNamespaceBinder implements XMLComponent , XMLDocumentFilter { protected static final String NAMESPACES = ( Constants . SAX_FEATURE_PREFIX ) + ( Constants . NAMESPACES_FEATURE ) ; 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 ) ; private static final String [ ] RECOGNIZED_FEATURES = new String [ ] { XMLNamespaceBinder . NAMESPACES } ; private static final String [ ] RECOGNIZED_PROPERTIES = new String [ ] { XMLNamespaceBinder . SYMBOL_TABLE , XMLNamespaceBinder . ERROR_REPORTER } ; protected boolean fNamespaces ; protected SymbolTable fSymbolTable ; protected XMLErrorReporter fErrorReporter ; protected XMLDocumentHandler fDocumentHandler ; protected NamespaceSupport fNamespaceSupport = new NamespaceSupport ( ) ; protected boolean fOnlyPassPrefixMappingEvents ; private NamespaceContext fNamespaceContext ; private QName fAttributeQName = new QName ( ) ; public XMLNamespaceBinder ( ) { } public XMLNamespaceBinder ( NamespaceContext namespaceContext ) { } public NamespaceContext getNamespaceContext ( ) { } public void setOnlyPassPrefixMappingEvents ( boolean onlyPassPrefixMappingEvents ) { } public boolean getOnlyPassPrefixMappingEvents ( ) { } public void reset ( XMLComponentManager componentManager ) throws XNIException { try { fNamespaces = componentManager . getFeature ( XMLNamespaceBinder . NAMESPACES ) ; } catch ( XMLConfigurationException e ) { fNamespaces = true ; } fSymbolTable = ( ( SymbolTable ) ( componentManager . getProperty ( XMLNamespaceBinder . SYMBOL_TABLE ) ) ) ; fErrorReporter = ( ( XMLErrorReporter ) ( componentManager . getProperty ( XMLNamespaceBinder . ERROR_REPORTER ) ) ) ; <START_BUG> fNamespaceSupport . reset ( fSymbolTable ) ; <END_BUG> NamespaceContext context = fNamespaceContext ; while ( context != null ) { int count = context . getDeclaredPrefixCount ( ) ; for ( int i = 0 ; i < count ; i ++ ) { String prefix = context . getDeclaredPrefixAt ( i ) ; if ( ( fNamespaceSupport . getURI ( prefix ) ) == null ) { String uri = context . getURI ( prefix ) ; fNamespaceSupport . declarePrefix ( prefix , uri ) ; } } context = context . getParentContext ( ) ; } } public String [ ] getRecognizedFeatures ( ) { } public void setFeature ( String featureId , boolean state ) throws XMLConfigurationException { } public String [ ] getRecognizedProperties ( ) { } public void setProperty ( String propertyId , Object value ) throws XMLConfigurationException { } public void setDocumentHandler ( XMLDocumentHandler documentHandler ) { } public void startGeneralEntity ( String name , XMLResourceIdentifier identifier , String encoding , Augmentations augs ) throws XNIException { } public void textDecl ( String version , String encoding , Augmentations augs ) throws XNIException { } public void startDocument ( XMLLocator locator , String encoding , Augmentations augs ) throws XNIException { } public void xmlDecl ( String version , String encoding , String standalone , Augmentations augs ) throws XNIException { } public void doctypeDecl ( String rootElement , String publicId , String systemId , 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 startPrefixMapping ( String prefix , String uri , Augmentations augs ) throws XNIException { } public void startElement ( QName element , XMLAttributes attributes , Augmentations augs ) throws XNIException { } public void emptyElement ( QName element , XMLAttributes attributes , Augmentations augs ) throws XNIException { } 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 endDocument ( Augmentations augs ) throws XNIException { } public void endGeneralEntity ( String name , Augmentations augs ) throws XNIException { } protected void handleStartElement ( QName element , XMLAttributes attributes , Augmentations augs , boolean isEmpty ) throws XNIException { } protected void handleEndElement ( QName element , Augmentations augs , boolean isEmpty ) throws XNIException { } }

Fix:
fNamespaceSupport . reset ( ) ;