Hi Klaus,

From the stack trace alone I cannot figure out, what is really causing this
NPE. It guess, some instrumentation code (update routine) is setting a null
value on the CombinedBitsType.
To workaround this issue, you can replace the transformFromNative method
in CombinedBitsType with the following:

public Object transformFromNative(Object nativeValue, ObjectName objectName) {
  if (nativeValue ==null) {
    return null;
  }
  byte[] bits =null;
  for (TypedAttribute a :proxyAttribute) {
    Object n = ((CompositeDataSupport)nativeValue).get(a.getName());
    n = a.transformFromNative(n,null);
    byte[] bytes = (byte[])n;
    if (bits ==null) {
      bits = bytes;
    }
    else if (bits.length < bytes.length) {
      for (int i=0; i<bits.length; i++) {
        bytes[i] |= bits[i];
      }
      bits = bytes;
    }
    else {
      for (int i=0; i<bytes.length; i++) {
        bits[i] |= bytes[i];
      }
    }
  }
  return bits;
}


Best regards,
Frank

Am 15.04.2016 um 12:37 schrieb Klaus Pittig:
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
_______________________________________________
SNMP4J mailing list
[email protected]
https://oosnmp.net/mailman/listinfo/snmp4j

--
---
AGENT++
Maximilian-Kolbe-Str. 10
73257 Koengen, Germany
https://agentpp.com
Phone: +49 7024 8688230
Fax:   +49 7024 8688231

_______________________________________________
SNMP4J mailing list
[email protected]
https://oosnmp.net/mailman/listinfo/snmp4j

Reply via email to