Frank, Tested and confirmed: v2.7.0 has the issue resolved.
Thanks, Mark On 2018-11-15 15:21, Frank Fock wrote: > Hi Mark, > > The following snapshot 2.7.0 release should provide a fix for this > issue: > https://snmp.app/dist/snapshot/org/snmp4j/snmp4j/2.7.0-SNAPSHOT/snmp4j-2.7.0-20181115.204944-10.jar > > Best regards, > Frank > >> On 15. Nov 2018, at 18:08, fo...@friendlysnmp.org wrote: >> >> I implemented notification 'appShutdown' as follows: >> 1. NotificationOriginatorImpl -> notify() with 'appShutdown' >> notification. >> 2. Snmp -> close() to release all resources. >> 3. Close application. >> >> The result is exception (line numbers are for SNMP4J v2.6.2): >> java.lang.RuntimeException: java.net.SocketException: socket closed >> at > org.snmp4j.transport.DefaultUdpTransportMapping$ListenThread.run(DefaultUdpTransportMapping.java:455) > > >> at java.lang.Thread.run(Thread.java:748) >> Caused by: java.net.SocketException: socket closed >> at > java.net.DualStackPlainDatagramSocketImpl.socketReceiveOrPeekData(Native > >> Method) >> at > java.net.DualStackPlainDatagramSocketImpl.receive0(DualStackPlainDatagramSocketImpl.java:124) > > >> at > java.net.AbstractPlainDatagramSocketImpl.receive(AbstractPlainDatagramSocketImpl.java:143) > > >> at java.net.DatagramSocket.receive(DatagramSocket.java:812) >> at > org.snmp4j.transport.DefaultUdpTransportMapping$ListenThread.run(DefaultUdpTransportMapping.java:397) > > >> at java.lang.Thread.run(Thread.java:748) >> >> I think the reason for the exception thrown is the 'appShutdown' >> notification confirmation packet comes *after* all resources are >> closed. The packet is processed in >> DefaultUdpTransportMapping.ListenThread.run() line-397 >> socketCopy.receive(packet). >> This method throws SocketException because the resources are closed, >> and the catch at line-455 re-throws RuntimeException. >> As the result DefaultUdpTransportMapping.ListenThread is not stopped >> and application fails to exit. >> >> What would you suggest to fix the exception in this scenario? >> Maybe additional boolean flag in TransportMapping could be added to >> signal WorkerTask not to process any packets if TransportMapping is >> closed? >> >> Thanks, >> Mark >> >> _______________________________________________ >> SNMP4J mailing list >> SNMP4J@agentpp.org >> https://oosnmp.net/mailman/listinfo/snmp4j _______________________________________________ SNMP4J mailing list SNMP4J@agentpp.org https://oosnmp.net/mailman/listinfo/snmp4j