Package org.apache.tomcat.util.compat
Class Jre12Compat
java.lang.Object
org.apache.tomcat.util.compat.JreCompat
org.apache.tomcat.util.compat.Jre12Compat
- Direct Known Subclasses:
Jre19Compat
-
Field Summary
Fields inherited from class org.apache.tomcat.util.compat.JreCompat
canonCachesDisabled, canonCachesDisabledLock, getApplicationProtocolMethod, setApplicationProtocolsMethod, USE_CANON_CACHES_CMD_ARG, useCanonCachesField, useCanonCachesFieldLock
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addBootModulePath
(Deque<URL> classPathUrlsToProcess) Obtains the URLs for all the JARs on the module path when the JVM starts and adds them to the provided Deque.boolean
canAccess
(Object base, AccessibleObject accessibleObject) Is the accessibleObject accessible (as a result of appropriate module exports) on the provided instance?void
Disables caching for JAR URL connections.protected void
getModuleName
(Class<?> type) What is the module of the given class?boolean
boolean
isExported
(Class<?> type) Is the given class in an exported package?boolean
Test if the provided exception is an instance of java.lang.reflect.InaccessibleObjectException.boolean
jarFileIsMultiRelease
(JarFile jarFile) Is this JarFile a multi-release JAR file.Creates a new JarFile instance.int
Methods inherited from class org.apache.tomcat.util.compat.JreCompat
callAs, createVirtualThreadBuilder, disableCanonCaches, getApplicationProtocol, getExecutor, getInstance, getUnixDomainSocketAddress, isAlpnSupported, isGraalAvailable, isJre11Available, isJre12Available, isJre16Available, isJre19Available, isJre21Available, isJre22Available, isJre9Available, jarFileNewInstance, openUnixDomainServerSocketChannel, openUnixDomainSocketChannel, setApplicationProtocols, threadBuilderStart
-
Constructor Details
-
Jre12Compat
public Jre12Compat()
-
-
Method Details
-
isCanonCachesDisabled
public boolean isCanonCachesDisabled()- Overrides:
isCanonCachesDisabled
in classJreCompat
-
ensureUseCanonCachesFieldIsPopulated
protected void ensureUseCanonCachesFieldIsPopulated()- Overrides:
ensureUseCanonCachesFieldIsPopulated
in classJreCompat
-
isInstanceOfInaccessibleObjectException
Description copied from class:JreCompat
Test if the provided exception is an instance of java.lang.reflect.InaccessibleObjectException.- Overrides:
isInstanceOfInaccessibleObjectException
in classJreCompat
- Parameters:
t
- The exception to test- Returns:
true
if the exception is an instance of InaccessibleObjectException, otherwisefalse
-
disableCachingForJarUrlConnections
Description copied from class:JreCompat
Disables caching for JAR URL connections. For Java 8 and earlier, this also disables caching for ALL URL connections.- Overrides:
disableCachingForJarUrlConnections
in classJreCompat
- Throws:
IOException
- If a dummy JAR URLConnection can not be created
-
addBootModulePath
Description copied from class:JreCompat
Obtains the URLs for all the JARs on the module path when the JVM starts and adds them to the provided Deque.- Overrides:
addBootModulePath
in classJreCompat
- Parameters:
classPathUrlsToProcess
- The Deque to which the modules should be added
-
jarFileNewInstance
Description copied from class:JreCompat
Creates a new JarFile instance. When running on Java 9 and later, the JarFile will be multi-release JAR aware.- Overrides:
jarFileNewInstance
in classJreCompat
- Parameters:
f
- The JAR file to open- Returns:
- A JarFile instance based on the provided file
- Throws:
IOException
- If an I/O error occurs creating the JarFile instance
-
jarFileIsMultiRelease
Description copied from class:JreCompat
Is this JarFile a multi-release JAR file.- Overrides:
jarFileIsMultiRelease
in classJreCompat
- Parameters:
jarFile
- The JarFile to test- Returns:
true
If it is a multi-release JAR file and is configured to behave as such.
-
jarFileRuntimeMajorVersion
public int jarFileRuntimeMajorVersion()- Overrides:
jarFileRuntimeMajorVersion
in classJreCompat
-
canAccess
Description copied from class:JreCompat
Is the accessibleObject accessible (as a result of appropriate module exports) on the provided instance? -
isExported
Description copied from class:JreCompat
Is the given class in an exported package?- Overrides:
isExported
in classJreCompat
- Parameters:
type
- The class to test- Returns:
- Always
true
for Java 8.true
if the enclosing package is exported for Java 9+
-
getModuleName
Description copied from class:JreCompat
What is the module of the given class?- Overrides:
getModuleName
in classJreCompat
- Parameters:
type
- The class to test- Returns:
- Always
true
for Java 8.true
if the enclosing package is exported for Java 9+
-