I have a mule app with Mule EE 3.8.0 which has it's http listener configured with worker threading profile to throttle the request traffic
Sample as below
<http:listener-config name="HTTP_Listener_Configuration"
host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration">
<http:worker-threading-profile maxThreadsActive="10"
threadWaitTimeout="15000" poolExhaustedAction="WAIT"/>
</http:listener-config>
This app is functioning well, but in logs there are increasing numbers of errors as below:
ERROR 2016-11-24 17:02:00,813 [[mule-api-v1].http.listener(2) SelectorRunner] org.glassfish.grizzly.nio.SelectorRunner: doSelect exception java.lang.NoClassDefFoundError: Could not initialize class org.glassfish.grizzly.localization.LogMessages at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:90) ~[grizzly-core-2.3.28.jar:2.3.28] at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:526) ~[grizzly-core-2.3.28.jar:2.3.28] at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) ~[grizzly-core-2.3.28.jar:2.3.28] at org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy.run0(ExecutorPerServerAddressIOStrategy.java:102) ~[mule-module-http-3.8.0.jar:3.8.0] at org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy.executeIoEvent(ExecutorPerServerAddressIOStrategy.java:75) ~[mule-module-http-3.8.0.jar:3.8.0] at org.glassfish.grizzly.strategies.AbstractIOStrategy.executeIoEvent(AbstractIOStrategy.java:89) ~[grizzly-core-2.3.28.jar:2.3.28] at org.glassfish.grizzly.nio.SelectorRunner.iterateKeyEvents(SelectorRunner.java:415) ~[grizzly-core-2.3.28.jar:2.3.28] at org.glassfish.grizzly.nio.SelectorRunner.iterateKeys(SelectorRunner.java:384) ~[grizzly-core-2.3.28.jar:2.3.28] at org.glassfish.grizzly.nio.SelectorRunner.doSelect(SelectorRunner.java:348) ~[grizzly-core-2.3.28.jar:2.3.28] at org.glassfish.grizzly.nio.SelectorRunner.run(SelectorRunner.java:279) ~[grizzly-core-2.3.28.jar:2.3.28] at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:593) ~[grizzly-core-2.3.28.jar:2.3.28] at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:573) ~[grizzly-core-2.3.28.jar:2.3.28] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_91]
Exception in thread "[mule--api-v1].HTTP_Listener_Configuration.worker.01" java.lang.NoClassDefFoundError: Could not initialize class org.glassfish.grizzly.localization.LogMessages at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:90) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:526) at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) at org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy.run0(ExecutorPerServerAddressIOStrategy.java:102) at org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy.access$100(ExecutorPerServerAddressIOStrategy.java:30) at org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy$WorkerThreadRunnable.run(ExecutorPerServerAddressIOStrategy.java:125) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
Exception in thread "[mule-api-v1].HTTP_Listener_Configuration.worker.02" java.lang.NoClassDefFoundError: Could not initialize class org.glassfish.grizzly.localization.LogMessages at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:90) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:526) at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) at org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy.run0(ExecutorPerServerAddressIOStrategy.java:102) at org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy.access$100(ExecutorPerServerAddressIOStrategy.java:30) at org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy$WorkerThreadRunnable.run(ExecutorPerServerAddressIOStrategy.java:125) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
Exception in thread "[mule-api-v1].HTTP_Listener_Configuration.worker.03" java.lang.NoClassDefFoundError: Could not initialize class org.glassfish.grizzly.localization.LogMessages at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:90) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:526) at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) at org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy.run0(ExecutorPerServerAddressIOStrategy.java:102) at org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy.access$100(ExecutorPerServerAddressIOStrategy.java:30) at org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy$WorkerThreadRunnable.run(ExecutorPerServerAddressIOStrategy.java:125) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
.... and so on and so on ....
As above stack trace shows, the number in the thread name such as HTTP_Listener_Configuration.worker.03
increases with every request this listener receives.
If I remove the work-threading-profile block, this issue is disappeared, but it is a must have to us, so please help anyone if you can point me a work around to it.