eclipse-ee4j / eclipse-ee4j/jersey
ClientRuntime.close() causes IllegalStateException on Tomcat 8
- Dominant language
- Java
- Stars
- 730
- Forks
- 382
- PR merge metrics
- No merged PRs in 30d
Description
jersey-client:2.22.1 is used in webapps deployed on Tomcat 8/JDK 8\. The REST proxy client is created via
```
org.glassfish.jersey.client.proxy.WebResourceFactory.newResource(Class resourceInterface, WebTarget target)
```
.
If the garbage collector runs after such a webapp is undeployed, the following exception is raised:
```
Illegal access: this web application instance has been stopped already. Could not load [org.jvnet.hk2.internal.ServiceLocatorImpl$7]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [org.jvnet.hk2.internal.ServiceLocatorImpl$7]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1353)
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1341)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1206)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
at org.jvnet.hk2.internal.ServiceLocatorImpl.shutdown(ServiceLocatorImpl.java:889)
at org.glassfish.jersey.internal.inject.Injections.shutdownLocator(Injections.java:290)
at org.glassfish.jersey.client.ClientRuntime.close(ClientRuntime.java:322)
at org.glassfish.jersey.client.ClientRuntime.finalize(ClientRuntime.java:297)
at java.lang.System$2.invokeFinalize(System.java:1270)
at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:98)
at java.lang.ref.Finalizer.access$100(Finalizer.java:34)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:210)
```
#### Environment
JDK 8, Tomcat 8
#### Affected Versions
[2.22.1]
Contributor guide
Assessment
This issue has not been assessed yet.