Buggy code:
public class PrivateStryker { private JMLAnnotatedClass subjectClass ; private String [ ] relevantClasses ; private String subjectMethod ; private boolean dfsStrategy = true ; private int maxDepth = 3 ; private boolean racEnabled ; private String typeScope = null ; public PrivateStryker ( JMLAnnotatedClass subjectClass , String subjectMethod ) { } public PrivateStryker ( JMLAnnotatedClass subjectClass , String subjectMethod , String [ ] dependencies ) { } public PrivateStryker ( JMLAnnotatedClass subjectClass , String subjectMethod , int maxDepth ) { } public PrivateStryker ( JMLAnnotatedClass subjectClass , String subjectMethod , String [ ] dependencies , int maxDepth ) { } public void setProgram ( JMLAnnotatedClass subject ) { } public void setDfsStrategy ( ) { } public void setBfsStrategy ( ) { } public void setMaxDepth ( int maxDepth ) { } public String [ ] getClassesDependencies ( ) { } public boolean repair ( ) { if ( ( ( subjectClass ) == null ) || ( ( subjectMethod ) == null ) ) throw new IllegalStateException ( "program<seq2seq4repair_space>or<seq2seq4repair_space>method<seq2seq4repair_space>is<seq2seq4repair_space>null" ) ; if ( ! ( subjectClass . isValid ( ) ) ) throw new IllegalStateException ( "program<seq2seq4repair_space>does<seq2seq4repair_space>not<seq2seq4repair_space>compile" ) ; StrykerRepairSearchProblem problem = new StrykerRepairSearchProblem ( subjectClass , subjectMethod , this . relevantClasses ) ; if ( racEnabled ) problem . setRacStrategy ( ) ; if ( ( this . typeScope ) != null ) { problem . setScope ( this . typeScope ) ; } String sandboxDir = StrykerConfig . getInstance ( ) . getCompilingSandbox ( ) ; if ( ! ( createSandboxDir ( sandboxDir ) ) ) { System . err . println ( ( "couldn't<seq2seq4repair_space>create<seq2seq4repair_space>compilation<seq2seq4repair_space>sandbox<seq2seq4repair_space>directory:<seq2seq4repair_space>" + sandboxDir ) ) ; return false ; } if ( ! ( move ( problem . initialState ( ) . program . getSourceFolder ( ) , sandboxDir , problem . initialState ( ) . program . getFilePath ( ) ) ) ) { System . err . println ( "couldn't<seq2seq4repair_space>move<seq2seq4repair_space>compilation<seq2seq4repair_space>ambient<seq2seq4repair_space>to<seq2seq4repair_space>compilation<seq2seq4repair_space>sandbox<seq2seq4repair_space>directory" ) ; return false ; } AbstractBoundedSearchEngine < FixCandidate , StrykerRepairSearchProblem > engine = null ; if ( this . dfsStrategy ) { engine = new search . engines . BoundedDepthFirstSearchEngine < FixCandidate , StrykerRepairSearchProblem > ( ) ; } else { engine = new search . engines . BoundedBreadthFirstSearchEngine < FixCandidate , StrykerRepairSearchProblem > ( ) ; } engine . setProblem ( problem ) ; engine . setMaxDepth ( this . maxDepth ) ; boolean outcome = engine . performSearch ( ) ; if ( outcome ) { FixCandidate solution = engine . getSolution ( ) ; <START_BUG> String solutionLocation = ( ( solution . program . getAbsolutePath ( ) ) + ( solution . program . getClassName ( ) ) ) + ".java" ; <END_BUG> System . out . println ( ( "***<seq2seq4repair_space>FOUND<seq2seq4repair_space>SOLUTION!<seq2seq4repair_space>Get<seq2seq4repair_space>it<seq2seq4repair_space>from:<seq2seq4repair_space>" + solutionLocation ) ) ; System . out . println ( "***<seq2seq4repair_space>Mutations<seq2seq4repair_space>that<seq2seq4repair_space>produced<seq2seq4repair_space>the<seq2seq4repair_space>fix:<seq2seq4repair_space>" ) ; for ( Mutation mutation : solution . getMutations ( ) ) { System . out . println ( ( ( ( mutation . toString ( ) ) + "<seq2seq4repair_space>in<seq2seq4repair_space>method<seq2seq4repair_space>" ) + ( mutation . isOneLineInMethodOp ( ) ? ( ( this . subjectMethod ) + "<seq2seq4repair_space>in<seq2seq4repair_space>line<seq2seq4repair_space>" ) + ( mutation . getAffectedLine ( ) ) : "not<seq2seq4repair_space>a<seq2seq4repair_space>method<seq2seq4repair_space>mutation" ) ) ) ; } System . out . println ( ( "***<seq2seq4repair_space>Stats:<seq2seq4repair_space>" + ( engine . report ( ) ) ) ) ; } else { System . out . println ( "***<seq2seq4repair_space>COULD<seq2seq4repair_space>NOT<seq2seq4repair_space>REPAIR<seq2seq4repair_space>PROGRAM.<seq2seq4repair_space>Try<seq2seq4repair_space>increasing<seq2seq4repair_space>depth<seq2seq4repair_space>in<seq2seq4repair_space>the<seq2seq4repair_space>search<seq2seq4repair_space>for<seq2seq4repair_space>solutions" ) ; System . out . println ( ( "***<seq2seq4repair_space>Stats:<seq2seq4repair_space>" + ( engine . report ( ) ) ) ) ; } deleteDir ( sandboxDir ) ; return outcome ; } private boolean move ( String sourceFolder , String sandboxDir , String ignoreFile ) { } private boolean deleteDir ( String dir ) { } private boolean createSandboxDir ( String sandboxDir ) { } public void setScope ( String typeScope ) { } public void enableRac ( ) { } }

Fix:
String solutionLocation = ( ( solution . program . getAbsolutePath ( ) ) + ( solution . program . getClassName ( ) . replace ( "." , StrykerConfig . getInstance ( ) . getFileSeparator ( ) ) ) ) + ".java" ;