esa / CCSDS_MO_TRANS

REPOSITORY ARCHIVED - for the latest version please go to https://github.com/esa/mo-services-java
Other
3 stars 7 forks source link

Shutdown of the TCPIP stack can throw ConcurrentModificationException #47

Open dmarszk opened 5 years ago

dmarszk commented 5 years ago

When trying to shutdown the application, a ConcurrentModificationException was thrown and the application did not exit (see log below)

kwi 15, 2019 12:40:18 AM esa.mo.mal.transport.tcpip.TCPIPTransport close
INFO: Closing TCPIPTransport...
kwi 15, 2019 12:40:18 AM esa.mo.mal.transport.tcpip.TCPIPConnectionPoolManager close
INFO: Closing client sockets...
kwi 15, 2019 12:40:18 AM esa.mo.mal.transport.gen.GENTransport processIncomingMessage
WARNING: GEN Error occurred when receiving data : {0}
java.util.ConcurrentModificationException
    at java.util.HashMap$HashIterator.nextNode(HashMap.java:1445)
    at java.util.HashMap$KeyIterator.next(HashMap.java:1469)
    at esa.mo.mal.transport.tcpip.TCPIPConnectionPoolManager.close(TCPIPConnectionPoolManager.java:149)
    at esa.mo.mal.transport.tcpip.TCPIPTransport.close(TCPIPTransport.java:360)
    at esa.mo.mal.impl.transport.TransportSingleton.close(TransportSingleton.java:243)
    at esa.mo.mal.impl.MALContextImpl.close(MALContextImpl.java:122)
    at esa.mo.helpertools.connections.ConnectionProvider.closeAll(ConnectionProvider.java:277)
    at esa.mo.com.impl.provider.ArchiveProviderServiceImpl.close(ArchiveProviderServiceImpl.java:117)
    at esa.mo.com.impl.util.COMServicesProvider.closeAll(COMServicesProvider.java:113)
    at esa.mo.nmf.nanosatmoconnector.NanoSatMOConnectorImpl.closeGracefully(NanoSatMOConnectorImpl.java:442)
    at esa.mo.nmf.nanosatmoconnector.CloseAppEventListener.onDataReceived(CloseAppEventListener.java:75)
    at esa.mo.com.impl.consumer.EventConsumerServiceImpl$1EventReceivedAdapter.monitorEventNotifyReceived(EventConsumerServiceImpl.java:171)
    at org.ccsds.moims.mo.com.event.consumer.EventAdapter.notifyReceived(EventAdapter.java:110)
    at esa.mo.mal.impl.MessageReceive.internalHandleNotify(MessageReceive.java:626)
    at esa.mo.mal.impl.MessageReceive.onMessage(MessageReceive.java:205)
    at esa.mo.mal.transport.gen.GENEndpoint.receiveMessage(GENEndpoint.java:365)
    at esa.mo.mal.transport.gen.GENTransport.processIncomingMessage(GENTransport.java:722)
    at esa.mo.mal.transport.gen.GENTransport$GENIncomingMessageProcessor.run(GENTransport.java:1290)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
CesarCoelho commented 3 years ago

Now available here: https://github.com/esa/mo-services-java/issues/3