mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 06:45:07 +02:00
8290313: Produce warning when user specified java.io.tmpdir directory doesn't exist
Reviewed-by: rriggs, naoto, coffeys
This commit is contained in:
parent
086763a629
commit
8df3bc4ec5
4 changed files with 140 additions and 4 deletions
|
@ -35,7 +35,7 @@ import java.nio.file.Path;
|
|||
import java.security.SecureRandom;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import sun.security.action.GetPropertyAction;
|
||||
import jdk.internal.util.StaticProperty;
|
||||
|
||||
/**
|
||||
* An abstract representation of file and directory pathnames.
|
||||
|
@ -1986,8 +1986,8 @@ public class File
|
|||
private TempDirectory() { }
|
||||
|
||||
// temporary directory location
|
||||
private static final File tmpdir = new File(
|
||||
GetPropertyAction.privilegedGetProperty("java.io.tmpdir"));
|
||||
private static final File tmpdir = new File(StaticProperty.javaIoTmpDir());
|
||||
|
||||
static File location() {
|
||||
return tmpdir;
|
||||
}
|
||||
|
|
|
@ -2244,6 +2244,12 @@ public final class System {
|
|||
// SecurityManager
|
||||
Unsafe.getUnsafe().ensureClassInitialized(StringConcatFactory.class);
|
||||
|
||||
// Emit a warning if java.io.tmpdir is set via the command line
|
||||
// to a directory that doesn't exist
|
||||
if (SystemProps.isBadIoTmpdir()) {
|
||||
System.err.println("WARNING: java.io.tmpdir directory does not exist");
|
||||
}
|
||||
|
||||
String smProp = System.getProperty("java.security.manager");
|
||||
boolean needWarning = false;
|
||||
if (smProp != null) {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2018, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
|
@ -28,6 +28,7 @@ package jdk.internal.util;
|
|||
import java.lang.annotation.Native;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.io.File;
|
||||
|
||||
/**
|
||||
* System Property initialization for internal use only
|
||||
|
@ -40,6 +41,18 @@ public final class SystemProps {
|
|||
// no instances
|
||||
private SystemProps() {}
|
||||
|
||||
// Custom java.io.tmpdir via command line.
|
||||
private static String customTmpdir;
|
||||
|
||||
/**
|
||||
* Check if warning for custom java.io.tmpdir is required.
|
||||
*
|
||||
* @return a boolean value
|
||||
*/
|
||||
public static boolean isBadIoTmpdir() {
|
||||
return customTmpdir != null && !(new File(customTmpdir).isDirectory());
|
||||
}
|
||||
|
||||
/**
|
||||
* Create and initialize the system properties from the native properties
|
||||
* and command line properties.
|
||||
|
@ -95,6 +108,8 @@ public final class SystemProps {
|
|||
putIfAbsent(props, "line.separator", raw.propDefault(Raw._line_separator_NDX));
|
||||
putIfAbsent(props, "file.separator", raw.propDefault(Raw._file_separator_NDX));
|
||||
putIfAbsent(props, "path.separator", raw.propDefault(Raw._path_separator_NDX));
|
||||
|
||||
customTmpdir = props.get("java.io.tmpdir");
|
||||
putIfAbsent(props, "java.io.tmpdir", raw.propDefault(Raw._java_io_tmpdir_NDX));
|
||||
putIfAbsent(props, "http.proxyHost", raw.propDefault(Raw._http_proxyHost_NDX));
|
||||
putIfAbsent(props, "http.proxyPort", raw.propDefault(Raw._http_proxyPort_NDX));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue