[SNMP4J] v3 NPE

Frank Fock fock at agentpp.com
Mon Jun 21 01:16:48 CEST 2004


Hi Yi,

Having revisited and reconsidered the problem, I was able to fix two race
conditions when Snmp instances are created simultaneously (using several
instances concurrently was not a problem, but creating and immediately
using them caused problems with the proper initialization of the MPv3).

SNMP4J v1.0a can be now downloaded from http://www.snmp4j.org.

Best regards,
Frank

Zhan Yi wrote:

>Hi Frank,
>
>In real situation I do use the snmp class. How ever I can't figure out how to seperate the parameters. Would you please give some code example? 
>
>Best Regards
>Zhan Yi
>
>----- Original Message ----- 
>From: "Frank Fock" <fock at agentpp.com>
>To: "Zhan Yi" <zhanyi at vanlink.com.cn>
>Cc: <snmp4j at agentpp.org>
>Sent: Tuesday, June 08, 2004 2:55 PM
>Subject: Re: [SNMP4J] v3 NPE
>
>
>  
>
>>Hi Zhan,
>>
>>Caution! The SnmpRequest class is *not* designed to be used by
>>multiple threads concurrently! The SnmpRequest class is an example
>>implementation and must not be used to these kind of tests.
>>
>>By using it in your way it will produce trash because the parameters
>>from the two threads will get mixed inside the SnmpRequest class!
>>
>>Please use the Snmp class to implement your SNMP requests.
>>
>>Best regards,
>>Frank
>>
>>Zhan Yi wrote:
>>
>>    
>>
>>>Hi Frank,
>>>
>>>Below is the sample code that will reproduce the problem. 
>>>I have no way to solve this problem, can you give some advice.
>>>
>>>Best Regards
>>>Zhan Yi
>>>
>>>public class TestSnmp4J {
>>>   
>>>   public static void main(String [] args) throws Exception {
>>>       String [] params1={"-t", "5000", "-u","cisco","-a","MD5","-A","auth","-x","DES","-X","priv","-Ow","13.253.253.253/161", "1.3.6.1.2.1"};
>>>       walkThread(params1);
>>>       String [] params2={"-t", "5000", "-u","peter","-a","MD5","-A","12345678","-x","DES","-X","12345678", "-Ow", "13.100.200.39/161", "1.3.6.1.2.1"};
>>>       walkThread(params2);
>>>   }
>>>   
>>>   static void walkThread(final String [] params) {
>>>       new Thread(new Runnable() {
>>>           public void run() {
>>>               try {
>>>                   org.snmp4j.tools.console.SnmpRequest.main(params);
>>>               }catch(Exception ex) {
>>>                   ex.printStackTrace();
>>>               }
>>>           }
>>>       }).start();
>>>   }
>>>
>>>
>>>----- Original Message ----- 
>>>From: "Frank Fock" <fock at agentpp.com>
>>>To: "Zhan Yi" <zhanyi at vanlink.com.cn>
>>>Cc: <snmp4j at agentpp.org>
>>>Sent: Tuesday, June 08, 2004 3:02 AM
>>>Subject: Re: [SNMP4J] v3 NPE
>>>
>>>
>>> 
>>>
>>>      
>>>
>>>>Hi Zhan,
>>>>
>>>>This error occurs when the USM returns an error while preparing
>>>>the outgoing message (most likely because the user is not known
>>>>to the USM which is referenced by the scoped PDU). That the NPE
>>>>is thrown is a bug, although it should not happen in a properly
>>>>setup application. The next SNMP4J version will throw a
>>>>MessageException here instead a NPE.
>>>>
>>>>Best regards,
>>>>Frank
>>>>
>>>>Zhan Yi wrote:
>>>>
>>>>   
>>>>
>>>>        
>>>>
>>>>>Hi,
>>>>>
>>>>>I got NPE occasionally using snmp v3 and running multiple concurrent threads.
>>>>>Can you give some hint on how to understand and solve this problem? Using v1 there is no problem.
>>>>>
>>>>>java.lang.NullPointerException
>>>>>      at org.snmp4j.MessageDispatcherImpl.sendPdu(MessageDispatcherImpl.java:330)
>>>>>      at org.snmp4j.Snmp.send(Snmp.java:285)
>>>>>      at org.snmp4j.Snmp$PendingRequest.run(Snmp.java:661)
>>>>>      at java.util.TimerThread.mainLoop(Timer.java:432)
>>>>>      at java.util.TimerThread.run(Timer.java:382)
>>>>>
>>>>>Thank you!
>>>>>
>>>>>
>>>>>Best Regards
>>>>>Zhan Yi
>>>>>
>>>>>
>>>>>------------------------------------------------------------------------
>>>>>
>>>>>_______________________________________________
>>>>>SNMP4J mailing list
>>>>>SNMP4J at agentpp.org
>>>>>http://p15141779.pureserver.info/mailman/listinfo/snmp4j
>>>>>
>>>>>
>>>>>     
>>>>>
>>>>>          
>>>>>
>>>>   
>>>>
>>>>        
>>>>
>>
>>    
>>





More information about the SNMP4J mailing list