[
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.