[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