From 632614e12a6435c592a962b29a77344203d3d563 Mon Sep 17 00:00:00 2001 From: redestad Date: Mon, 20 Jan 2020 14:24:21 +0100 Subject: [PATCH] 8237508: Simplify JarFile.isInitializing Reviewed-by: dfuchs, coffeys, lancea --- .../share/classes/java/util/jar/JarFile.java | 19 ++++++++++++------- .../java/util/jar/JavaUtilJarAccessImpl.java | 4 ++-- .../jdk/internal/misc/JavaUtilJarAccess.java | 2 +- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/java.base/share/classes/java/util/jar/JarFile.java b/src/java.base/share/classes/java/util/jar/JarFile.java index b617d5a4eb..323a42e2e0 100644 --- a/src/java.base/share/classes/java/util/jar/JarFile.java +++ b/src/java.base/share/classes/java/util/jar/JarFile.java @@ -147,11 +147,13 @@ import java.util.zip.ZipFile; */ public class JarFile extends ZipFile { - private final static Runtime.Version BASE_VERSION; - private final static int BASE_VERSION_FEATURE; - private final static Runtime.Version RUNTIME_VERSION; - private final static boolean MULTI_RELEASE_ENABLED; - private final static boolean MULTI_RELEASE_FORCED; + private static final Runtime.Version BASE_VERSION; + private static final int BASE_VERSION_FEATURE; + private static final Runtime.Version RUNTIME_VERSION; + private static final boolean MULTI_RELEASE_ENABLED; + private static final boolean MULTI_RELEASE_FORCED; + private static final ThreadLocal isInitializing = new ThreadLocal<>(); + private SoftReference manRef; private JarEntry manEntry; private JarVerifier jv; @@ -160,8 +162,6 @@ class JarFile extends ZipFile { private final Runtime.Version version; // current version private final int versionFeature; // version.feature() private boolean isMultiRelease; // is jar multi-release? - static final ThreadLocal isInitializing = - ThreadLocal.withInitial(() -> Boolean.FALSE); // indicates if Class-Path attribute present private boolean hasClassPathAttribute; @@ -1043,6 +1043,11 @@ class JarFile extends ZipFile { } } + static boolean isInitializing() { + Boolean value = isInitializing.get(); + return (value == null) ? false : value; + } + /* * Returns a versioned {@code JarFileEntry} for the given entry, * if there is one. Otherwise returns the original entry. This diff --git a/src/java.base/share/classes/java/util/jar/JavaUtilJarAccessImpl.java b/src/java.base/share/classes/java/util/jar/JavaUtilJarAccessImpl.java index 434e8478ae..8bb69f39e6 100644 --- a/src/java.base/share/classes/java/util/jar/JavaUtilJarAccessImpl.java +++ b/src/java.base/share/classes/java/util/jar/JavaUtilJarAccessImpl.java @@ -69,7 +69,7 @@ class JavaUtilJarAccessImpl implements JavaUtilJarAccess { jar.ensureInitialization(); } - public Boolean isInitializing() { - return JarFile.isInitializing.get(); + public boolean isInitializing() { + return JarFile.isInitializing(); } } diff --git a/src/java.base/share/classes/jdk/internal/misc/JavaUtilJarAccess.java b/src/java.base/share/classes/jdk/internal/misc/JavaUtilJarAccess.java index a893ab9c43..0623e66f9f 100644 --- a/src/java.base/share/classes/jdk/internal/misc/JavaUtilJarAccess.java +++ b/src/java.base/share/classes/jdk/internal/misc/JavaUtilJarAccess.java @@ -45,5 +45,5 @@ public interface JavaUtilJarAccess { public List getManifestDigests(JarFile jar); public Attributes getTrustedAttributes(Manifest man, String name); public void ensureInitialization(JarFile jar); - public Boolean isInitializing(); + public boolean isInitializing(); } -- GitLab