EMA Java API dead lock

EMA Java API version: 3.4.0.1

I don't know how it happened. I use API dispatch. I remember seeing a suggestion about dead lock problem somewhere that using user dispatch would solve the problem, is there another/better workaround?

"pool-14-thread-1" - Thread t@51
   java.lang.Thread.State: WAITING
        at sun.misc.Unsafe.park(Native Method)
        - waiting to lock <19fb84cb> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) owned by "pool-16-thread-1" t@53
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
        at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:209)
        at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:285)
        at com.thomsonreuters.upa.valueadd.reactor.Reactor.submitChannel(Reactor.java:1985)
        at com.thomsonreuters.upa.valueadd.reactor.WlStream.encodeIntoBufferAndWrite(WlStream.java:748)
        at com.thomsonreuters.upa.valueadd.reactor.WlStream.sendCloseMsg(WlStream.java:793)
        at com.thomsonreuters.upa.valueadd.reactor.WlStream.timeout(WlStream.java:305)
        at com.thomsonreuters.upa.valueadd.reactor.Watchlist.timeout(Watchlist.java:328)
        at com.thomsonreuters.upa.valueadd.reactor.Reactor.processWorkerEvent(Reactor.java:2677)
        at com.thomsonreuters.upa.valueadd.reactor.Reactor.dispatchChannel(Reactor.java:1968)
        at com.thomsonreuters.upa.valueadd.reactor.ReactorChannel.dispatch(ReactorChannel.java:559)
        at com.thomsonreuters.ema.access.OmmBaseImpl.rsslReactorDispatchLoop(OmmBaseImpl.java:1289)
        at com.thomsonreuters.ema.access.OmmBaseImpl.run(OmmBaseImpl.java:1422)
        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)

   Locked ownable synchronizers:
        - locked <10ad20cb> (a java.util.concurrent.ThreadPoolExecutor$Worker)

        - locked <3f6430cf> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

        - locked <75b3318c> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"pool-16-thread-1" - Thread t@53
   java.lang.Thread.State: WAITING
        at sun.misc.Unsafe.park(Native Method)
        - waiting to lock <75b3318c> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) owned by "pool-14-thread-1" t@51
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
        at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:209)
        at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:285)
        at com.thomsonreuters.upa.valueadd.reactor.Reactor.submitChannel(Reactor.java:1985)
        at com.thomsonreuters.upa.valueadd.reactor.WlStream.encodeIntoBufferAndWrite(WlStream.java:748)
        at com.thomsonreuters.upa.valueadd.reactor.WlStream.sendCloseMsg(WlStream.java:793)
        at com.thomsonreuters.upa.valueadd.reactor.WlStream.timeout(WlStream.java:305)
        at com.thomsonreuters.upa.valueadd.reactor.Watchlist.timeout(Watchlist.java:328)
        at com.thomsonreuters.upa.valueadd.reactor.Reactor.processWorkerEvent(Reactor.java:2677)
        at com.thomsonreuters.upa.valueadd.reactor.Reactor.dispatchChannel(Reactor.java:1968)
        at com.thomsonreuters.upa.valueadd.reactor.ReactorChannel.dispatch(ReactorChannel.java:559)
        at com.thomsonreuters.ema.access.OmmBaseImpl.rsslReactorDispatchLoop(OmmBaseImpl.java:1289)
        at com.thomsonreuters.ema.access.OmmBaseImpl.run(OmmBaseImpl.java:1422)
        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)

   Locked ownable synchronizers:
        - locked <19fb84cb> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

        - locked <37e30fd5> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

        - locked <3e792ce3> (a java.util.concurrent.ThreadPoolExecutor$Worker)

Best Answer

Answers