aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Damien Martin-Guillerez <dmarting@google.com>2016-04-18 07:59:45 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-04-18 10:43:34 +0000
commitef5165c59aac412893b1439bfa393d571c54018f (patch)
tree75f07e830d77febed07473aaed6f50cc6acec11f /src
parentfbafe83b65965277e8c8c53b3f4b978b5507e021 (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.java23
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);
}