cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rene Preissel (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CXF-5087) ThreadLocal: BusFactory.threadBus is never removed, generates permgen out of memory error after some redeployments
Date Thu, 20 Jun 2013 12:24:20 GMT

     [ https://issues.apache.org/jira/browse/CXF-5087?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Rene Preissel updated CXF-5087:
-------------------------------

    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.

  was:
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. 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.

    
> ThreadLocal: BusFactory.threadBus is never removed, generates permgen out of memory error
after some redeployments
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: CXF-5087
>                 URL: https://issues.apache.org/jira/browse/CXF-5087
>             Project: CXF
>          Issue Type: Bug
>          Components: Bus, Core
>    Affects Versions: 2.7.5
>            Reporter: Rene Preissel
>
> 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.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message