diff options
author | Damien Martin-Guillerez <dmarting@google.com> | 2016-04-18 07:59:45 +0000 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2016-04-18 10:43:34 +0000 |
commit | ef5165c59aac412893b1439bfa393d571c54018f (patch) | |
tree | 75f07e830d77febed07473aaed6f50cc6acec11f /src | |
parent | fbafe83b65965277e8c8c53b3f4b978b5507e021 (diff) |
GenClass: delete the temporary directory before usage
Fixes #1104.
--
MOS_MIGRATED_REVID=120098776
Diffstat (limited to 'src')
-rw-r--r-- | src/java_tools/buildjar/java/com/google/devtools/build/buildjar/genclass/GenClass.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/genclass/GenClass.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/genclass/GenClass.java index 64f3681556..7e6a5404ff 100644 --- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/genclass/GenClass.java +++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/genclass/GenClass.java @@ -22,8 +22,11 @@ import com.google.devtools.build.buildjar.proto.JavaCompilation.Manifest; import java.io.IOException; import java.io.InputStream; +import java.nio.file.FileVisitResult; import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.SimpleFileVisitor; +import java.nio.file.attribute.BasicFileAttributes; import java.util.Arrays; import java.util.Enumeration; import java.util.jar.JarEntry; @@ -36,9 +39,29 @@ import java.util.jar.JarFile; */ public class GenClass { + /** + * Recursively delete a directory. + */ + private static void deleteTree(Path directory) throws IOException { + Files.walkFileTree(directory, new SimpleFileVisitor<Path>() { + @Override + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { + Files.delete(file); + return FileVisitResult.CONTINUE; + } + + @Override + public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException { + Files.delete(dir); + return FileVisitResult.CONTINUE; + } + }); + } + public static void main(String[] args) throws IOException { GenClassOptions options = GenClassOptionsParser.parse(Arrays.asList(args)); Manifest manifest = readManifest(options.manifest()); + deleteTree(options.tempDir()); extractGeneratedClasses(options.classJar(), manifest, options.tempDir()); writeOutputJar(options); } |