[SNMP4J] Infinite loop in DefaultMOTable cleanup method

Frank Fock fock at agentpp.com
Tue Oct 11 09:16:58 CEST 2005


Hello Matthias,

Thanks for reporting this. It will be fixed in the next release.

Best regards,
Frank

Matthias Wiesmann wrote:

>Hello,
>
>I discovered a weakness in the error handling method 
>DefaultMOTable::cleanup. The problem lies in line 674:
>
>    MOMutableTableRow row = (MOMutableTableRow) model.getRow(cell.getIndex());
>
>The problem is the following, if somebody puts a TableRow that is not
>a subclass of MOMutableRow into the table, this fires a CastException.
>The exception is caught in CommandProcessor::cleanup() at line 583,
>the error printed out, but we do not exit the loop at line 589, so
>cleanup is re-initated, the exception thrown again etc...
>
>While I agree I did something stupid, the system should no go into an
>infinite loop for this.
>
>Best regards
>
>Matthias Wiesmann
>
>Typical output.
>
>9346 [DefaultUDPTransportMapping_0.0.0.0/1616] ERROR
>org.snmp4j.agent.CommandProcessor  - java.lang.ClassCastException
>9346 [DefaultUDPTransportMapping_0.0.0.0/1616] DEBUG
>org.snmp4j.agent.mo.DefaultMOTable  - Cleaning-up sub-request
>(1.1.1.1.1.4.1 = 10000) for column:
>org.snmp4j.agent.mo.MOMutableColumn[columnID=4,syntax=2,default=null,mode=]
>java.lang.ClassCastException
>	at org.snmp4j.agent.mo.DefaultMOTable.cleanup(DefaultMOTable.java:674)
>	at org.snmp4j.agent.CommandProcessor$SetHandler.cleanup(CommandProcessor.java:579)
>	at org.snmp4j.agent.CommandProcessor$SetHandler.processPdu(CommandProcessor.java:459)
>	at org.snmp4j.agent.CommandProcessor.dispatchCommand(CommandProcessor.java:174)
>	at org.snmp4j.agent.CommandProcessor$Command.run(CommandProcessor.java:274)
>	at org.snmp4j.agent.CommandProcessor.processPdu(CommandProcessor.java:79)
>	at org.snmp4j.MessageDispatcherImpl.fireProcessPdu(MessageDispatcherImpl.java:534)
>	at org.snmp4j.MessageDispatcherImpl.dispatchMessage(MessageDispatcherImpl.java:248)
>	at org.snmp4j.MessageDispatcherImpl.processMessage(MessageDispatcherImpl.java:309)
>	at org.snmp4j.MessageDispatcherImpl.processMessage(MessageDispatcherImpl.java:270)
>	at org.snmp4j.transport.AbstractTransportMapping.fireProcessMessage(AbstractTransportMapping.java:82)
>	at org.snmp4j.transport.DefaultUdpTransportMapping$ListenThread.run(DefaultUdpTransportMapping.java:279)
>9348 [DefaultUDPTransportMapping_0.0.0.0/1616] ERROR
>org.snmp4j.agent.CommandProcessor  - java.lang.ClassCastException
>9348 [DefaultUDPTransportMapping_0.0.0.0/1616] DEBUG
>org.snmp4j.agent.mo.DefaultMOTable  - Cleaning-up sub-request
>_______________________________________________
>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