[SNMP4J] SNMP4J Problem using OID.nextPeer()
Frank Fock
fock at agentpp.com
Wed Apr 19 18:36:52 CEST 2006
Hello Anthony,
Thanks for reporting this bug. The correct fix would
be
if ((next.size() > 0) && (last() != MAX_SUBID_VALUE)) {
instead of
if ((next.size() > 0) && (last() < MAX_SUBID_VALUE)) {
I will put this fix in the 1.7.1 version which will be
released on Monday next week.
Best regards,
Frank
Zinger, Anthony J wrote:
> Hello,
>
>
>
> I have SNMP4J version 1.7 installed on a Windows PC running Microsoft
> Windows XP Version 2002 Service Pack 2.
>
>
>
> A sample of my code using the OID.nextPeer() method:
>
>
>
> OID testOID = new OID(new int[] { 1,3,6,1,4,1,100,1,2,3,0
> });
>
>
>
> PDU request = new ScopedPDU();
>
> request.setType(PDU.GET);
>
> request.add(new VariableBinding(testOID));
>
> ResponseEvent responseEvent = sendSNMPMessage(snmp,
> request, target);
>
> :
>
> :
>
> testOID = testOID.nextPeer();
>
>
>
> I was trying to get the next OID value for an entry in my MIB using
> the OID.nextPeer() method and I got the:
>
> Exception in thread "main" java.lang.StackOverflowError
>
> at org.snmp4j.smi.OID.nextPeer(OID.java:627)
>
> at org.snmp4j.smi.OID.nextPeer(OID.java:628)
>
> at org.snmp4j.smi.OID.nextPeer(OID.java:628)
>
> at org.snmp4j.smi.OID.nextPeer(OID.java:628)
>
> at org.snmp4j.smi.OID.nextPeer(OID.java:628)
>
> at org.snmp4j.smi.OID.nextPeer(OID.java:628)
>
> at org.snmp4j.smi.OID.nextPeer(OID.java:628)
>
> at org.snmp4j.smi.OID.nextPeer(OID.java:628)
>
> at org.snmp4j.smi.OID.nextPeer(OID.java:628)
>
>
>
> After adding some debug messages to OID.nextPeer(), I determined that
> the check for last() < MAX_SUBID_VALUE in the IF statement was always
> returning false:
>
> if ((next.size() > 0) && (last() < MAX_SUBID_VALUE)) {
>
>
>
> The MAX_SUBID_VALUE is defined as:
>
> public static final int MAX_SUBID_VALUE = 0xFFFFFFFF;
>
>
>
> Executing this code on my PC interprets the MAX_SUBID_VALUE as -1 and
> therefore fails.
>
> To resolve this problem, I defined MAX_SUBID_VALUE to be 0x7FFFFFFF,
> and this problem went away.
>
>
>
> So a potential fix for this problem would be to define the
> MAX_SUBID_VALUE as an "UNSIGNED" int or have a value of 0x7FFFFFFF.
>
>
>
> If this is not the correct solution to this problem, could you please
> supply me with an explanation as to what it should be or what I am doing
> wrong.
>
>
>
> Thanks for your help in resolving this problem.
>
>
>
> Anthony J. Zinger
>
> _______________________________________________
> 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