[SNMP4J] NPE possible during shutdown

Klaus Pittig klaus at pittig.de
Fri Apr 15 12:37:41 CEST 2016


Library-Version: snmp4j-agent-2.4.2.jar (together with snmp4j-2.4.3 and
snmp4j-agent-jmx-2.1.0)

I'm facing a minor(?) problem during Shutdown

On a (Windows 7) host with Java 8 (1.8.0_77) machine we use a java service
wrapper (yajsw-12) for an application that starts a JMXTestAgent clone. Works
fine so far, but on a Ctrl-C/SIGTERM the ShutdownHook starts and we sometimes
(not always) see the following NPE.

StackTrace:

INFO|wrapper|16-04-14 18:14:57|stopping process with pid/timeout 7730 45000
INFO|wrapper|16-04-14 18:14:57|Shutting down Wrapper INFO|7730/0|16-04-14
18:14:57| wrapper manager received stop command FINEST|7730/0|16-04-14
18:14:57|java.lang.NullPointerException FINEST|7730/0|16-04-14 18:14:57| at
org.snmp4j.agent.mo.jmx.types.CombinedBitsType.transformFromNative(CombinedBitsType.java:37)
FINEST|7730/0|16-04-14 18:14:57| at
org.snmp4j.agent.mo.jmx.MBeanAttributeMOTableSupport.getRow(MBeanAttributeMOTableSupport.java:174)
FINEST|7730/0|16-04-14 18:14:57| at
org.snmp4j.agent.mo.jmx.JMXTableModel$JMXTableRowIterator.next(JMXTableModel.java:228)
FINEST|7730/0|16-04-14 18:14:57| at
org.snmp4j.agent.mo.jmx.JMXTableModel$JMXTableRowIterator.next(JMXTableModel.java:194)
FINEST|7730/0|16-04-14 18:14:57| at
org.snmp4j.agent.mo.DefaultMOTable.save(DefaultMOTable.java:1277)
FINEST|7730/0|16-04-14 18:14:57| at
org.snmp4j.agent.io.MOServerPersistence.writeData(MOServerPersistence.java:225)
FINEST|7730/0|16-04-14 18:14:57| at
org.snmp4j.agent.io.MOServerPersistence.saveData(MOServerPersistence.java:181)
FINEST|7730/0|16-04-14 18:14:57| at
org.snmp4j.agent.io.DefaultMOPersistenceProvider.store(DefaultMOPersistenceProvider.java:148)
FINEST|7730/0|16-04-14 18:14:57| at
org.snmp4j.agent.BaseAgent.saveConfig(BaseAgent.java:292) FINEST|7730/0|16-04-14
18:14:57| at org.snmp4j.agent.BaseAgent$1.run(BaseAgent.java:306)
FINEST|7730/0|16-04-14 18:14:57|Uncaught exception by Thread[Thread-12,5,main]:
FINEST|7730/0|16-04-14 18:14:57|java.lang.NullPointerException:null
FINEST|7730/0|16-04-14 18:14:57|java.lang.NullPointerException
FINEST|7730/0|16-04-14 18:14:57| at
org.snmp4j.agent.mo.DefaultMOTable.getPersistentValues(DefaultMOTable.java:1313)
FINEST|7730/0|16-04-14 18:14:57| at
org.snmp4j.agent.mo.DefaultMOTable.save(DefaultMOTable.java:1286)
FINEST|7730/0|16-04-14 18:14:57| at
org.snmp4j.agent.io.MOServerPersistence.writeData(MOServerPersistence.java:225)
FINEST|7730/0|16-04-14 18:14:57| at
org.snmp4j.agent.io.MOServerPersistence.saveData(MOServerPersistence.java:181)
FINEST|7730/0|16-04-14 18:14:57| at
org.snmp4j.agent.io.DefaultMOPersistenceProvider.store(DefaultMOPersistenceProvider.java:148)
FINEST|7730/0|16-04-14 18:14:57| at
org.snmp4j.agent.BaseAgent.saveConfig(BaseAgent.java:292) FINEST|7730/0|16-04-14
18:14:57| at org.snmp4j.agent.BaseAgent$1.run(BaseAgent.java:306)
INFO|wrapper|16-04-14 18:15:02|killing 7730 INFO|wrapper|16-04-14
18:15:02|shutdown wrapper due to exit code rule INFO|wrapper|16-04-14
18:15:03|process exit code: 0



More information about the SNMP4J mailing list