mirror of
https://github.com/openjdk/jdk.git
synced 2026-02-09 18:08:31 +00:00
8064789: Nashorn should just warn on code store instantiation error
Reviewed-by: attila, lagergren
This commit is contained in:
parent
ca13b9a903
commit
20bfcfa75a
@ -82,10 +82,9 @@ public abstract class CodeStore implements Loggable {
|
||||
* Returns a new code store instance.
|
||||
*
|
||||
* @param context the current context
|
||||
* @return The instance
|
||||
* @throws IOException If an error occurs
|
||||
* @return The instance, or null if code store could not be created
|
||||
*/
|
||||
public static CodeStore newCodeStore(final Context context) throws IOException {
|
||||
public static CodeStore newCodeStore(final Context context) {
|
||||
final Class<CodeStore> baseClass = CodeStore.class;
|
||||
try {
|
||||
// security check first
|
||||
@ -103,9 +102,14 @@ public abstract class CodeStore implements Loggable {
|
||||
} catch (final AccessControlException e) {
|
||||
context.getLogger(CodeStore.class).warning("failed to load code store provider ", e);
|
||||
}
|
||||
final CodeStore store = new DirectoryCodeStore(context);
|
||||
store.initLogger(context);
|
||||
return store;
|
||||
try {
|
||||
final CodeStore store = new DirectoryCodeStore(context);
|
||||
store.initLogger(context);
|
||||
return store;
|
||||
} catch (final IOException e) {
|
||||
context.getLogger(CodeStore.class).warning("failed to create cache directory ", e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -509,11 +509,7 @@ public final class Context {
|
||||
}
|
||||
|
||||
if (env._persistent_cache) {
|
||||
try {
|
||||
codeStore = newCodeStore(this);
|
||||
} catch (final IOException e) {
|
||||
throw new RuntimeException("Error initializing code cache", e);
|
||||
}
|
||||
codeStore = newCodeStore(this);
|
||||
}
|
||||
|
||||
// print version info if asked.
|
||||
@ -1200,7 +1196,7 @@ public final class Context {
|
||||
FunctionNode functionNode = null;
|
||||
// We only use the code store here if optimistic types are disabled. With optimistic types, initial compilation
|
||||
// just creates a thin wrapper, and actual code is stored per function in RecompilableScriptFunctionData.
|
||||
final boolean useCodeStore = env._persistent_cache && !env._parse_only && !env._optimistic_types;
|
||||
final boolean useCodeStore = codeStore != null && !env._parse_only && !env._optimistic_types;
|
||||
final String cacheKey = useCodeStore ? CodeStore.getCacheKey(0, null) : null;
|
||||
|
||||
if (useCodeStore) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user