eclipse-ee4j / eclipse-ee4j/jersey

ClientRuntime.close() causes IllegalStateException on Tomcat 8

Open
#3,318 3 comments 0 reactions 0 assignees View on GitHub
Priority: Major Type: Bug
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.