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

Hadrian Zbarcea resolved CXF-2606.
----------------------------------

       Resolution: Fixed
    Fix Version/s: 2.3
                   2.2.6

Fixed by dkulp in r896888,896994. Thanks.

> ThreadGroup in the default workqueue gets prematurely destroyed
> ---------------------------------------------------------------
>
>                 Key: CXF-2606
>                 URL: https://issues.apache.org/jira/browse/CXF-2606
>             Project: CXF
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 2.2.2
>         Environment: IBM JDK6
>            Reporter: Hadrian Zbarcea
>             Fix For: 2.2.6, 2.3
>
>
> An IllegalThreadStateException gets thrown as shown in the stack below when a 
> new Thread is added to the default workqueue. This does not happen with the 
> Sun JDK and it was not encountered with the IBM JDK5 either.
> The Exception gets thrown because the ThreadGroup is destroyed by the time we 
> add the new thread because the core pool size (low watermark) is 0, the 
> number of threads is 0 and is a daemon thread.
> {code}
> Throwable occurred: java.lang.IllegalThreadStateException
>         at java.lang.ThreadGroup.checkNewThread(ThreadGroup.java:147)
>         at java.lang.Thread.initialize(Thread.java:332)
>         at java.lang.Thread.<init>(Thread.java:267)
>         at java.lang.Thread.<init>(Thread.java:225)
>         at 
> org.apache.cxf.workqueue.AutomaticWorkQueueImpl$AWQThreadFactory.newThread(AutomaticWorkQueueImpl.java:162)
>         at 
> java.util.concurrent.ThreadPoolExecutor.addThread(ThreadPoolExecutor.java:672)
>         at 
> java.util.concurrent.ThreadPoolExecutor.addIfUnderCorePoolSize(ThreadPoolExecutor.java:697)
>         at 
> java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:652)
>         at 
> org.apache.cxf.workqueue.AutomaticWorkQueueImpl.execute(AutomaticWorkQueueImpl.java:249)
>         at 
> org.apache.cxf.interceptor.OneWayProcessorInterceptor.handleMessage(OneWayProcessorInterceptor.java:83)
>         at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)
>         at 
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:104)
> {code}
> A workaround is to set the lowWaterMark to something >=1 so that the 
> ThreadGroup never gets destroyed.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to