Buggy code:
public class WLJspc extends MatchingTask { private String pathToPackage = "" ; private Vector filesToDo = new Vector ( ) ; private Path compileClasspath ; private File destinationDirectory ; private String destinationPackage ; private File sourceDirectory ; public void setClasspath ( Path classpath ) { } public void setDest ( File dirName ) { } public void setPackage ( String packageName ) { } public void setSrc ( File dirName ) { } public Path createClasspath ( ) { } public void execute ( ) throws BuildException { if ( ! ( destinationDirectory . isDirectory ( ) ) ) { throw new BuildException ( ( ( "destination<seq2seq4repair_space>directory<seq2seq4repair_space>" + ( destinationDirectory . getPath ( ) ) ) + "<seq2seq4repair_space>is<seq2seq4repair_space>not<seq2seq4repair_space>valid" ) ) ; } if ( ! ( sourceDirectory . isDirectory ( ) ) ) { throw new BuildException ( ( ( "src<seq2seq4repair_space>directory<seq2seq4repair_space>" + ( sourceDirectory . getPath ( ) ) ) + "<seq2seq4repair_space>is<seq2seq4repair_space>not<seq2seq4repair_space>valid" ) ) ; } if ( ( destinationPackage ) == null ) { <START_BUG> throw new BuildException ( "package<seq2seq4repair_space>attribute<seq2seq4repair_space>must<seq2seq4repair_space>be<seq2seq4repair_space>present." , location ) ; <END_BUG> } String systemClassPath = System . getProperty ( "java.class.path" ) ; pathToPackage = this . destinationPackage . replace ( '.' , File . separatorChar ) ; DirectoryScanner ds = super . getDirectoryScanner ( sourceDirectory ) ; if ( ( compileClasspath ) == null ) { compileClasspath = new Path ( project ) ; } compileClasspath . append ( systemClasspath ) ; String [ ] files = ds . getIncludedFiles ( ) ; Java helperTask = ( ( Java ) ( project . createTask ( "java" ) ) ) ; helperTask . setFork ( true ) ; helperTask . setClassname ( "weblogic.jspc" ) ; helperTask . setTaskName ( getTaskName ( ) ) ; String [ ] args = new String [ 12 ] ; File jspFile = null ; String parents = "" ; String arg = "" ; int j = 0 ; args [ ( j ++ ) ] = "-d" ; args [ ( j ++ ) ] = destinationDirectory . getAbsolutePath ( ) . trim ( ) ; args [ ( j ++ ) ] = "-docroot" ; args [ ( j ++ ) ] = sourceDirectory . getAbsolutePath ( ) . trim ( ) ; args [ ( j ++ ) ] = "-keepgenerated" ; args [ ( j ++ ) ] = "-compilerclass" ; args [ ( j ++ ) ] = "sun.tools.javac.Main" ; args [ ( j ++ ) ] = "-classpath" ; args [ ( j ++ ) ] = compileClasspath . toString ( ) ; this . scanDir ( files ) ; log ( ( ( "Compiling<seq2seq4repair_space>" + ( filesToDo . size ( ) ) ) + "<seq2seq4repair_space>JSP<seq2seq4repair_space>files" ) ) ; for ( int i = 0 ; i < ( filesToDo . size ( ) ) ; i ++ ) { jspFile = new File ( ( ( String ) ( filesToDo . elementAt ( i ) ) ) ) ; args [ j ] = "-package" ; parents = jspFile . getParent ( ) ; if ( ( parents != null ) && ( ! ( "" . equals ( parents ) ) ) ) { parents = this . replaceString ( parents , File . separator , "_." ) ; args [ ( j + 1 ) ] = ( ( ( destinationPackage ) + "." ) + "_" ) + parents ; } else { args [ ( j + 1 ) ] = destinationPackage ; } args [ ( j + 2 ) ] = ( ( sourceDirectory ) + ( File . separator ) ) + ( ( String ) ( filesToDo . elementAt ( i ) ) ) ; arg = "" ; for ( int x = 0 ; x < 12 ; x ++ ) { arg += "<seq2seq4repair_space>" + ( args [ x ] ) ; } System . out . println ( ( "arg<seq2seq4repair_space>=<seq2seq4repair_space>" + arg ) ) ; helperTask . clearArgs ( ) ; helperTask . setArgs ( arg ) ; helperTask . setClasspath ( compileClasspath ) ; if ( ( helperTask . executeJava ( ) ) != 0 ) { log ( ( ( files [ i ] ) + "<seq2seq4repair_space>failed<seq2seq4repair_space>to<seq2seq4repair_space>compile" ) , MSG_WARN ) ; } } } protected String replaceString ( String inpString , String escapeChars , String replaceChars ) { } protected void scanDir ( String [ ] files ) { } }

Fix:
throw new BuildException ( "package<seq2seq4repair_space>attribute<seq2seq4repair_space>must<seq2seq4repair_space>be<seq2seq4repair_space>present." ) ;