Buggy code:
public class Test { class InFileInfo { public String fileName ; public String fileContent ; int checkSum ; } final int MAXINFILES = 25 ; class RunInfo { boolean quiet ; boolean verbose ; int numThreads ; boolean validating ; boolean dom ; boolean reuseParser ; boolean inMemory ; boolean dumpOnErr ; int totalTime ; int numInputFiles ; Test . InFileInfo [ ] files = new Test . InFileInfo [ MAXINFILES ] ; } class ThreadInfo { boolean fHeartBeat ; int fParses ; int fThreadNum ; ThreadInfo ( ) { } } Test . RunInfo gRunInfo = new Test . RunInfo ( ) ; Test . ThreadInfo [ ] gThreadInfo ; class ThreadParser extends HandlerBase { private int fCheckSum ; private SAXParser fSAXParser ; private DOMParser fDOMParser ; public void characters ( char [ ] chars , int start , int length ) { } public void ignorableWhitespace ( char [ ] chars , int start , int length ) { } public void warning ( SAXParseException ex ) { } public void error ( SAXParseException ex ) { } public void fatalError ( SAXParseException ex ) { } ThreadParser ( ) { } int parse ( int fileNum ) { InputSource mbis = null ; Test . InFileInfo fInfo = gRunInfo . files [ fileNum ] ; fCheckSum = 0 ; if ( gRunInfo . inMemory ) { mbis = new InputSource ( new StringReader ( fInfo . fileContent ) ) ; } try { if ( gRunInfo . dom ) { if ( gRunInfo . inMemory ) fDOMParser . parse ( mbis ) ; else fDOMParser . parse ( fInfo . fileName ) ; Document doc = fDOMParser . getDocument ( ) ; domCheckSum ( doc ) ; CoreDocumentImpl core = ( ( CoreDocumentImpl ) ( doc ) ) ; <START_BUG> DOMConfiguration config = core . getConfig ( ) ; <END_BUG> config . setParameter ( "validate" , Boolean . TRUE ) ; core . normalizeDocument ( ) ; } else { if ( gRunInfo . inMemory ) fSAXParser . parse ( mbis ) ; else fSAXParser . parse ( fInfo . fileName ) ; } } catch ( SAXException e ) { String exceptionMessage = e . getMessage ( ) ; System . err . println ( ( ( ( "<seq2seq4repair_space>during<seq2seq4repair_space>parsing:<seq2seq4repair_space>" + ( fInfo . fileName ) ) + "<seq2seq4repair_space>Exception<seq2seq4repair_space>message<seq2seq4repair_space>is:<seq2seq4repair_space>" ) + exceptionMessage ) ) ; } catch ( IOException e ) { String exceptionMessage = e . getMessage ( ) ; System . err . println ( ( ( ( "<seq2seq4repair_space>during<seq2seq4repair_space>parsing:<seq2seq4repair_space>" + ( fInfo . fileName ) ) + "<seq2seq4repair_space>Exception<seq2seq4repair_space>message<seq2seq4repair_space>is:<seq2seq4repair_space>" ) + exceptionMessage ) ) ; } return fCheckSum ; } private void addToCheckSum ( char [ ] chars , int start , int len ) { } private void addToCheckSum ( String chars ) { } public void startElement ( String name , AttributeList attributes ) { } public void domCheckSum ( Node node ) { } public int reCheck ( ) { } public void domPrint ( ) { } void domPrint ( Node node ) { } } void parseCommandLine ( String [ ] argv ) { } void ReadFilesIntoMemory ( ) { } class thread extends Thread { Test . ThreadInfo thInfo ; thread ( Test . ThreadInfo param ) { } public void run ( ) { } } void run ( String [ ] argv ) { } public static void main ( String [ ] argv ) { } }

Fix:
DOMConfiguration config = core . getDomConfig ( ) ;