[SNMP4J] System.exit() does not exit
Frank Fock
fock at agentpp.com
Fri May 2 01:04:49 CEST 2008
Hi Mark,
I do not know why that code worked before,
but for me it is clear why it cannot reliable
work: When you call System.exit(0) from
within a ThreadPool's thread, then the ThreadPool
receives an interrupted exception and tries
to stop and join the running threads. Since
the thread that called exit cannot be joined
anymore, a deadlock occurs.
Your workaround is not a workaround but the
correct solution for the problem.
SNMP4J 1.x runs on Java 1.4, so Java 1.5 classes
are not an option.
Best regards,
Frank
Mark Gorokhov wrote:
> I have an option to remotely shutdown the application. This is simple:
> valid SET request for a scalar triggers System.exit() call. Everything
> was fine until I upgraded to v1.9.1d and Agent-1.2beta. The
> System.exit() is called from RequestPool thread. The application
> partially (!) closes, shutdown hook is called but all threads remain
> active and JVM remains running.
>
> I resolved the issue with
> EventQueue.invokeLater(new Runnable() {
> public void run() {
> System.exit(0);
> }
> });
>
> Where is the problem? Could you reproduce it?
>
> I inclined to blame new updates to ThreadPool.
> BTW, there is a Sun tested ThreadPoolExecutor class since Java 1.5.
>
> -mg
>
> _______________________________________________
> SNMP4J mailing list
> SNMP4J at agentpp.org
> http://lists.agentpp.org/mailman/listinfo/snmp4j
--
AGENT++
http://www.agentpp.com
http://www.mibexplorer.com
http://www.mibdesigner.com
More information about the SNMP4J
mailing list