|
28 | 28 | import java.net.URL; |
29 | 29 | import java.net.URLClassLoader; |
30 | 30 | import java.nio.file.Files; |
| 31 | +import java.nio.file.attribute.FileAttribute; |
| 32 | +import java.nio.file.attribute.PosixFilePermission; |
| 33 | +import java.nio.file.attribute.PosixFilePermissions; |
31 | 34 | import java.util.ArrayList; |
32 | 35 | import java.util.Arrays; |
33 | 36 | import java.util.Enumeration; |
34 | 37 | import java.util.List; |
| 38 | +import java.util.Set; |
35 | 39 | import java.util.jar.JarEntry; |
36 | 40 | import java.util.jar.JarFile; |
37 | 41 | import java.util.jar.JarInputStream; |
@@ -287,20 +291,18 @@ public void run(String[] args) throws Throwable { |
287 | 291 |
|
288 | 292 | final File workDir; |
289 | 293 | try { |
290 | | - workDir = File.createTempFile("hadoop-unjar", "", tmpDir); |
291 | | - } catch (IOException ioe) { |
| 294 | + FileAttribute<Set<PosixFilePermission>> perms = PosixFilePermissions |
| 295 | + .asFileAttribute(PosixFilePermissions.fromString("rwx------")); |
| 296 | + workDir = Files.createTempDirectory(tmpDir.toPath(), "hadoop-unjar", perms).toFile(); |
| 297 | + } catch (IOException | SecurityException e) { |
292 | 298 | // If user has insufficient perms to write to tmpDir, default |
293 | 299 | // "Permission denied" message doesn't specify a filename. |
294 | 300 | System.err.println("Error creating temp dir in java.io.tmpdir " |
295 | | - + tmpDir + " due to " + ioe.getMessage()); |
| 301 | + + tmpDir + " due to " + e.getMessage()); |
296 | 302 | System.exit(-1); |
297 | 303 | return; |
298 | 304 | } |
299 | 305 |
|
300 | | - if (!workDir.delete()) { |
301 | | - System.err.println("Delete failed for " + workDir); |
302 | | - System.exit(-1); |
303 | | - } |
304 | 306 | ensureDirectory(workDir); |
305 | 307 |
|
306 | 308 | ShutdownHookManager.get().addShutdownHook( |
|
0 commit comments