Buggy code:
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 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 startEntity ( String name , String publicId , String systemId , String baseSystemId , String encoding , Augmentations augs ) throws XNIException { } public void textDecl ( String version , String encoding , 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 endEntity ( String name , Augmentations augs ) throws XNIException { } public void startDTD ( XMLLocator locator ) throws XNIException { } public void comment ( XMLString text ) throws XNIException { } public void characters ( XMLString text ) throws XNIException { } public void textDecl ( String version , String encoding ) throws XNIException { } public void startEntity ( String name , String publicId , String systemId , String baseSystemId , String encoding ) throws XNIException { } public void endEntity ( String name ) throws XNIException { } public void processingInstruction ( String target , XMLString data ) throws XNIException { } public void elementDecl ( String name , String contentModel ) throws XNIException { } public void startAttlist ( String elementName ) throws XNIException { } public void attributeDecl ( String elementName , String attributeName , String type , String [ ] enumeration , String defaultType , XMLString defaultValue ) throws XNIException { } public void endAttlist ( ) throws XNIException { } public void internalEntityDecl ( String name , XMLString text , XMLString nonNormalizedText ) throws XNIException { } public void externalEntityDecl ( String name , String publicId , String systemId , String baseSystemId ) throws XNIException { } public void unparsedEntityDecl ( String name , String publicId , String systemId , String notation ) throws XNIException { } public void notationDecl ( String name , String publicId , String systemId ) throws XNIException { } public void startConditional ( short type ) throws XNIException { } public void endConditional ( ) throws XNIException { } public void endDTD ( ) throws XNIException { } public void startContentModel ( String elementName ) throws XNIException { } public void any ( ) throws XNIException { } public void empty ( ) throws XNIException { } public void startGroup ( ) throws XNIException { } public void pcdata ( ) { } public void element ( String elementName ) throws XNIException { } public void separator ( short separator ) throws XNIException { } public void occurrence ( short occurrence ) throws XNIException { } public void endGroup ( ) throws XNIException { } public void endContentModel ( ) throws XNIException { } private void addDTDDefaultAttrsAndValidate ( int elementIndex , XMLAttributes attributes ) throws XNIException { } private String getExternalEntityRefInAttrValue ( String nonNormalizedValue ) { } private void validateDTDattribute ( QName element , String attValue , XMLAttributeDecl attributeDecl ) throws XNIException { } boolean invalidStandaloneAttDef ( QName element , QName attribute ) { } private boolean normalizeAttrValue ( XMLAttributes attributes , int index ) { } private boolean normalizeDefaultAttrValue ( XMLString value ) { } private void rootElementSpecified ( QName rootElement ) throws XNIException { } private int checkContent ( int elementIndex , QName [ ] children , int childOffset , int childCount ) throws XNIException { } private int getContentSpecType ( int elementIndex ) { } private void charDataInContent ( ) { } private String getAttributeTypeName ( XMLAttributeDecl attrDecl ) { switch ( attrDecl . simpleType . type ) { case XMLSimpleType . TYPE_ENTITY : { return attrDecl . simpleType . list ? fENTITIESSymbol : fENTITYSymbol ; } case XMLSimpleType . TYPE_ENUMERATION : { StringBuffer buffer = new StringBuffer ( ) ; buffer . append ( '(' ) ; for ( int i = 0 ; i < ( attrDecl . simpleType . enumeration . length ) ; i ++ ) { if ( i > 0 ) { buffer . append ( "|" ) ; } buffer . append ( attrDecl . simpleType . enumeration [ i ] ) ; } buffer . append ( ')' ) ; return fSymbolTable . addSymbol ( buffer . toString ( ) ) ; } case XMLSimpleType . TYPE_ID : { return fIDSymbol ; } case XMLSimpleType . TYPE_IDREF : { return attrDecl . simpleType . list ? fIDREFSSymbol : fIDREFSymbol ; } case XMLSimpleType . TYPE_NMTOKEN : { <START_BUG> return attrDecl . simpleType . list ? fNMTOKENSSymbol : fNMTOKENSSymbol ; <END_BUG> } case XMLSimpleType . TYPE_NOTATION : { return fNOTATIONSymbol ; } } return fCDATASymbol ; } private void init ( ) { } private void ensureStackCapacity ( int newElementDepth ) { } protected void handleStartElement ( QName element , XMLAttributes attributes ) throws XNIException { } protected void handleEndElement ( QName element , Augmentations augs , boolean isEmpty ) throws XNIException { } protected DTDGrammar createDTDGrammar ( ) { } }

Fix:
return attrDecl . simpleType . list ? fNMTOKENSSymbol : fNMTOKENSymbol ;