Buggy code:
public class McpcDevPlugin extends DevBasePlugin { @ Override public void applyPlugin ( ) { } @ Override protected final DelayedFile getDevJson ( ) { } protected void createJarProcessTasks ( ) { ProcessJarTask task2 = makeTask ( "deobfuscateJar" , ProcessJarTask . class ) ; { task2 . setInJar ( delayedFile ( JAR_MERGED ) ) ; task2 . setOutCleanJar ( delayedFile ( JAR_SRG_MCPC ) ) ; task2 . setSrg ( delayedFile ( JOINED_SRG ) ) ; task2 . setExceptorCfg ( delayedFile ( JOINED_EXC ) ) ; task2 . setExceptorJson ( delayedFile ( EXC_JSON ) ) ; task2 . addTransformerClean ( delayedFile ( ( ( FML_RESOURCES ) + "//fml_at.cfg" ) ) ) ; task2 . addTransformerClean ( delayedFile ( ( ( FORGE_RESOURCES ) + "//forge_at.cfg" ) ) ) ; task2 . setApplyMarkers ( true ) ; task2 . dependsOn ( "downloadMcpTools" , "mergeJars" ) ; } DecompileTask task3 = makeTask ( "decompile" , DecompileTask . class ) ; { task3 . setInJar ( delayedFile ( JAR_SRG_MCPC ) ) ; task3 . setOutJar ( delayedFile ( ZIP_DECOMP_MCPC ) ) ; task3 . setFernFlower ( delayedFile ( FERNFLOWER ) ) ; task3 . setPatch ( delayedFile ( MCP_PATCH_DIR ) ) ; task3 . setAstyleConfig ( delayedFile ( ASTYLE_CFG ) ) ; task3 . dependsOn ( "downloadMcpTools" , "deobfuscateJar" ) ; } ProcessSrcJarTask task4 = makeTask ( "forgePatchJar" , ProcessSrcJarTask . class ) ; { task4 . setInJar ( delayedFile ( ZIP_DECOMP_MCPC ) ) ; task4 . setOutJar ( delayedFile ( ZIP_FORGED_MCPC ) ) ; <START_BUG> task4 . addStage ( "fml" , delayedFile ( FML_PATCH_DIR ) , delayedFile ( FML_SOURCES ) , delayedFile ( FML_RESOURCES ) , delayedFile ( "{MAPPINGS_DIR}//patches//Start.java" ) ) ; <END_BUG> task4 . addStage ( "forge" , delayedFile ( FORGE_PATCH_DIR ) , delayedFile ( FORGE_SOURCES ) , delayedFile ( FORGE_RESOURCES ) ) ; task4 . addStage ( "bukkit" , null , delayedFile ( BUKKIT_SOURCES ) ) ; task4 . setDoesCache ( false ) ; task4 . setMaxFuzz ( 2 ) ; task4 . dependsOn ( "decompile" , "compressDeobfData" , "createVersionPropertiesFML" ) ; } RemapSourcesTask task6 = makeTask ( "remapCleanJar" , RemapSourcesTask . class ) ; { task6 . setInJar ( delayedFile ( ZIP_FORGED_MCPC ) ) ; task6 . setOutJar ( delayedFile ( REMAPPED_CLEAN ) ) ; task6 . setMethodsCsv ( delayedFile ( METHODS_CSV ) ) ; task6 . setFieldsCsv ( delayedFile ( FIELDS_CSV ) ) ; task6 . setParamsCsv ( delayedFile ( PARAMS_CSV ) ) ; task6 . setDoesCache ( true ) ; task6 . setNoJavadocs ( ) ; task6 . dependsOn ( "forgePatchJar" ) ; } task4 = makeTask ( "mcpcPatchJar" , ProcessSrcJarTask . class ) ; { task4 . setInJar ( delayedFile ( REMAPPED_CLEAN ) ) ; task4 . setOutJar ( delayedFile ( ZIP_PATCHED_MCPC ) ) ; task4 . addStage ( "MCPC" , delayedFile ( MCPC_PATCH_DIR ) ) ; task4 . setDoesCache ( false ) ; task4 . setMaxFuzz ( 2 ) ; task4 . dependsOn ( "forgePatchJar" ) ; } task6 = makeTask ( "remapMcpcJar" , RemapSourcesTask . class ) ; { task6 . setInJar ( delayedFile ( ZIP_PATCHED_MCPC ) ) ; task6 . setOutJar ( delayedFile ( ZIP_RENAMED_MCPC ) ) ; task6 . setMethodsCsv ( delayedFile ( METHODS_CSV ) ) ; task6 . setFieldsCsv ( delayedFile ( FIELDS_CSV ) ) ; task6 . setParamsCsv ( delayedFile ( PARAMS_CSV ) ) ; task6 . setDoesCache ( true ) ; task6 . setNoJavadocs ( ) ; task6 . dependsOn ( "mcpcPatchJar" ) ; } } private void createSourceCopyTasks ( ) { } @ SuppressWarnings ( "serial" ) private void createProjectTasks ( ) { } private void createEclipseTasks ( ) { } @ SuppressWarnings ( "unused" ) private void createMiscTasks ( ) { } @ SuppressWarnings ( "serial" ) private void createPackageTasks ( ) { } @ Override public void afterEvaluate ( ) { } }

Fix:
task4 . addStage ( "fml" , delayedFile ( FML_PATCH_DIR ) , delayedFile ( FML_SOURCES ) , delayedFile ( FML_RESOURCES ) , delayedFile ( "{MAPPINGS_DIR}//patches//Start.java" ) , delayedFile ( DEOBF_DATA ) , delayedFile ( FML_VERSIONF ) ) ;