Buggy code:
public class TemplateParser extends NodeParser { private static final String SOCKET_BINDINGS_PI = "SOCKET-BINDINGS" ; private static final String EXTENSIONS_PI = "EXTENSIONS" ; private static final String SUBSYSTEMS_PI = "SUBSYSTEMS" ; private final File inputFile ; private final String rootElementName ; private ElementNode root ; private ProcessingInstructionNode extensionPlaceholder ; private final Map < String , ProcessingInstructionNode > subsystemPlaceHolders = new HashMap < String , ProcessingInstructionNode > ( ) ; private final Map < String , ProcessingInstructionNode > socketBindingsPlaceHolder = new HashMap < String , ProcessingInstructionNode > ( ) ; public TemplateParser ( File inputFile , String rootElementName ) { } ElementNode getRootNode ( ) { } ProcessingInstructionNode getExtensionPlaceHolder ( ) { } Map < String , ProcessingInstructionNode > getSubsystemPlaceholders ( ) { } Map < String , ProcessingInstructionNode > getSocketBindingsPlaceHolders ( ) { } void parse ( ) throws IOException , XMLStreamException { } @ Override protected ProcessingInstructionNode parseProcessingInstruction ( XMLStreamReader reader , ElementNode parent ) throws XMLStreamException { ProcessingInstructionNode node = null ; String pi = reader . getPITarget ( ) ; Map < String , String > data = parseProcessingInstructionData ( reader . getPIData ( ) ) ; if ( pi . equals ( TemplateParser . EXTENSIONS_PI ) ) { if ( ! ( data . isEmpty ( ) ) ) { throw new IllegalStateException ( ( ( "<?" + ( TemplateParser . EXTENSIONS_PI ) ) + "?><seq2seq4repair_space>should<seq2seq4repair_space>not<seq2seq4repair_space>take<seq2seq4repair_space>any<seq2seq4repair_space>data" ) ) ; } if ( ( extensionPlaceholder ) != null ) { <START_BUG> throw new IllegalStateException ( ( ( "Can<seq2seq4repair_space>only<seq2seq4repair_space>have<seq2seq4repair_space>one<seq2seq4repair_space>occurrence<seq2seq4repair_space>of<seq2seq4repair_space><?" + ( TemplateParser . EXTENSIONS_PI ) ) + "?>" ) ) ; <END_BUG> } node = new ProcessingInstructionNode ( TemplateParser . EXTENSIONS_PI , null ) ; extensionPlaceholder = node ; } else if ( pi . equals ( TemplateParser . SUBSYSTEMS_PI ) ) { if ( ! ( parent . getName ( ) . equals ( "profile" ) ) ) { throw new IllegalStateException ( ( ( ( "<?" + ( TemplateParser . SUBSYSTEMS_PI ) ) + "?><seq2seq4repair_space>must<seq2seq4repair_space>be<seq2seq4repair_space>a<seq2seq4repair_space>child<seq2seq4repair_space>of<seq2seq4repair_space><profile><seq2seq4repair_space>" ) + ( reader . getLocation ( ) ) ) ) ; } if ( ( ( data . size ( ) ) == 0 ) || ( ! ( data . containsKey ( "socket-binding-group" ) ) ) ) { throw new IllegalStateException ( ( ( "Must<seq2seq4repair_space>have<seq2seq4repair_space>'socket-binding-group'<seq2seq4repair_space>as<seq2seq4repair_space><?" + ( TemplateParser . SUBSYSTEMS_PI ) ) + "?><seq2seq4repair_space>data" ) ) ; } if ( ( data . size ( ) ) > 1 ) { throw new IllegalStateException ( ( ( "Only<seq2seq4repair_space>'socket-binding-group'<seq2seq4repair_space>is<seq2seq4repair_space>valid<seq2seq4repair_space><?" + ( TemplateParser . SUBSYSTEMS_PI ) ) + "?><seq2seq4repair_space>data" ) ) ; } String profileName = parent . getAttributeValue ( "name" , "" ) ; node = new ProcessingInstructionNode ( profileName , data ) ; subsystemPlaceHolders . put ( profileName , node ) ; } else if ( pi . equals ( TemplateParser . SOCKET_BINDINGS_PI ) ) { if ( ! ( parent . getName ( ) . equals ( "socket-binding-group" ) ) ) { throw new IllegalStateException ( ( ( ( "<?" + ( TemplateParser . SOCKET_BINDINGS_PI ) ) + "?><seq2seq4repair_space>must<seq2seq4repair_space>be<seq2seq4repair_space>a<seq2seq4repair_space>child<seq2seq4repair_space>of<seq2seq4repair_space><socket-binding-group><seq2seq4repair_space>" ) + ( reader . getLocation ( ) ) ) ) ; } if ( ! ( data . isEmpty ( ) ) ) { throw new IllegalStateException ( ( ( "<?" + ( TemplateParser . SOCKET_BINDINGS_PI ) ) + "?><seq2seq4repair_space>should<seq2seq4repair_space>not<seq2seq4repair_space>take<seq2seq4repair_space>any<seq2seq4repair_space>data" ) ) ; } String groupName = parent . getAttributeValue ( "name" , "" ) ; node = new ProcessingInstructionNode ( TemplateParser . SOCKET_BINDINGS_PI , data ) ; socketBindingsPlaceHolder . put ( groupName , node ) ; } else { throw new IllegalStateException ( ( ( ( "Unknown<seq2seq4repair_space>processing<seq2seq4repair_space>instruction<seq2seq4repair_space><?" + ( reader . getPITarget ( ) ) ) + "?>" ) + ( reader . getLocation ( ) ) ) ) ; } return node ; } }

Fix:
throw new IllegalStateException ( ( ( "Can<seq2seq4repair_space>only<seq2seq4repair_space>have<seq2seq4repair_space>one<seq2seq4repair_space>occurance<seq2seq4repair_space>of<seq2seq4repair_space><?" + ( TemplateParser . EXTENSIONS_PI ) ) + "?>" ) ) ;