Description
The ThreadLocal BusFactory.threadBus is created in the constructor of the CXFBusImpl and removed in the shutdown()-method.
But in an application server environment (e.g. JBoss7) with thread pools the constructor and the shutdwon()-method are invoked from different threads and therefore this ThreadLocal is never removed.
Issue CXF-2164 and CXF-2985 do already discuss this topic and assume that this bug is fixed, but there is still this dangling ThreadLocal. I proved this in a JBoss7.1.1.Final environment.
I don't know the reason for having this ThreadLocal for the whole lifetime of the bus. From my point of view a ThreadLocal should only exist for the lifetime of one request. At the end of the request, when the thread is given back to the pool, the ThreadLocal must be cleared.
Attachments
Issue Links
- is related to
-
CXF-5492 ThreadLoad org.apache.cxf.BusFactory.BusHolder leak in Tomcat
- Open