private void compileChunk(ModuleChunk chunk) throws IOException { final String chunkPresentableName = getPresentableNameFor(chunk); myModuleName = chunkPresentableName; // validate encodings if (chunk.getModuleCount() > 1) { validateEncoding(chunk, chunkPresentableName); // todo: validation for bytecode target? } runTransformingCompilers(chunk); final List<OutputDir> outs = new ArrayList<OutputDir>(); File fileToDelete = getOutputDirsToCompileTo(chunk, outs); try { for (final OutputDir outputDir : outs) { chunk.setSourcesFilter(outputDir.getKind()); doCompile(chunk, outputDir.getPath()); } } finally { if (fileToDelete != null) { FileUtil.asyncDelete(fileToDelete); } } }