3 days after deploying jca-2.4.12 fixing #87 for ByteBuffer corruption on reconnect, a new error start to raise many times in the console log with same behaviour for the end user on webopi (all pvs appear disconnected).
2026-06-24 06:38:18.262 SEVERE [Thread 192] com.cosylab.epics.caj.CAJChannel (destroyAllMonitors) -
java.lang.IllegalStateException: transport closed
at com.cosylab.epics.caj.impl.CATransport.submit(CATransport.java:888)
at com.cosylab.epics.caj.impl.requests.AbstractCARequest.submit(AbstractCARequest.java:88)
at com.cosylab.epics.caj.CAJMonitor.clear(CAJMonitor.java:141)
at com.cosylab.epics.caj.CAJChannel.destroyAllMonitors(CAJChannel.java:1213)
at com.cosylab.epics.caj.CAJChannel.destroyChannel(CAJChannel.java:414)
at com.cosylab.epics.caj.CAJContext.destroyChannel(CAJContext.java:1107)
at com.cosylab.epics.caj.CAJChannel.destroy(CAJChannel.java:383)
at com.cosylab.epics.caj.CAJChannel.destroy(CAJChannel.java:368)
at org.diirt.support.ca.JCAChannelHandler.disconnect(JCAChannelHandler.java:569)
at org.diirt.datasource.MultiplexedChannelHandler.guardedDisconnect(MultiplexedChannelHandler.java:323)
at org.diirt.datasource.MultiplexedChannelHandler.removeWrite(MultiplexedChannelHandler.java:279)
at org.diirt.datasource.DataSource$4.run(DataSource.java:337)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
and then few minutes later
2026-06-24 06:40:19.371 WARNING [Thread 717880] org.csstudio.opibuilder.util.ErrorHandlerUtil (handleError) - Error from pv connection layer:
java.lang.IllegalStateException: No channel transport available, channel disconnected.
at com.cosylab.epics.caj.CAJChannel.get(CAJChannel.java:989)
at org.diirt.support.ca.JCAChannelHandler.setup(JCAChannelHandler.java:336)
at org.diirt.support.ca.JCAChannelHandler$3$1.run(JCAChannelHandler.java:439)
at java.base/java.lang.Thread.run(Thread.java:833)
2026-06-24 06:40:19.371 SEVERE [Thread 203] com.cosylab.epics.caj.CAJChannel (updateSubscriptions) -
java.nio.channels.ClosedChannelException
at java.base/sun.nio.ch.SocketChannelImpl.ensureOpenAndConnected(SocketChannelImpl.java:215)
at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:527)
at com.cosylab.epics.caj.impl.CATransport.noSyncSend(CATransport.java:676)
at com.cosylab.epics.caj.impl.CATransport.submit(CATransport.java:866)
at com.cosylab.epics.caj.impl.requests.AbstractCARequest.submit(AbstractCARequest.java:88)
at com.cosylab.epics.caj.impl.requests.EventAddRequest.updateSubscription(EventAddRequest.java:141)
at com.cosylab.epics.caj.CAJChannel.updateSubscriptions(CAJChannel.java:1328)
at com.cosylab.epics.caj.CAJChannel.transportResponsive(CAJChannel.java:547)
at com.cosylab.epics.caj.impl.CATransport.responsiveTransport(CATransport.java:1088)
at com.cosylab.epics.caj.impl.CATransport.echoNotify(CATransport.java:1039)
at com.cosylab.epics.caj.impl.handlers.EchoResponse.internalHandleResponse(EchoResponse.java:45)
at com.cosylab.epics.caj.impl.handlers.AbstractCAResponseHandler.handleResponse(AbstractCAResponseHandler.java:110)
at com.cosylab.epics.caj.impl.CAResponseHandler.handleResponse(CAResponseHandler.java:139)
at com.cosylab.epics.caj.impl.CATransport.processRead(CATransport.java:519)
at com.cosylab.epics.caj.impl.CATransport.processRead(CATransport.java:431)
at com.cosylab.epics.caj.impl.CATransport.handleEvent(CATransport.java:369)
at com.cosylab.epics.caj.impl.reactor.lf.LeaderFollowersHandler.handleEvent(LeaderFollowersHandler.java:77)
at com.cosylab.epics.caj.impl.reactor.Reactor.processInternal(Reactor.java:404)
at com.cosylab.epics.caj.impl.reactor.Reactor.process(Reactor.java:288)
at com.cosylab.epics.caj.impl.reactor.lf.LeaderFollowersHandler.run(LeaderFollowersHandler.java:91)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
2026-06-24 06:40:19.371 SEVERE [Thread 203] com.cosylab.epics.caj.impl.CATransport (responsiveTransport) -
java.lang.NullPointerException
2026-06-24 06:40:19.372 SEVERE [Thread 203] com.cosylab.epics.caj.impl.CATransport (responsiveTransport) -
java.lang.NullPointerException
Looks like java.lang.IllegalStateException thrown at
|
throw new IllegalStateException("transport closed"); |
should be catched at
|
} catch (IOException ioex) { |
for the following lines to be executed in order to properly cancel request and unregister monitor
3 days after deploying jca-2.4.12 fixing #87 for ByteBuffer corruption on reconnect, a new error start to raise many times in the console log with same behaviour for the end user on webopi (all pvs appear disconnected).
and then few minutes later
Looks like java.lang.IllegalStateException thrown at
jca/src/core/com/cosylab/epics/caj/impl/CATransport.java
Line 888 in a0fb7c9
should be catched at
jca/src/core/com/cosylab/epics/caj/CAJMonitor.java
Line 142 in a0fb7c9
for the following lines to be executed in order to properly cancel request and unregister monitor