[SNMP4J] Unable to add rows with Rowstatus and TableUtils?

johan.rask at jayway.se johan.rask at jayway.se
Mon Jul 7 08:50:28 CEST 2008


Hi,

I have a table which I want to add rows dynamically. I have changed code from the
TestAgent class to something that I feel should work but I still get "unable to create object"
eller message. I would appreciate some help with this, I cannot find any examples of this.

Any help is appreciated!

Regards /Johan

// Calling createRow (currentTableRowIndex == 1)
// I have also tried with non-null value argument but I get the same result.
// This code result in "unable to create object"
ResponseEvent event = tableUtils.createRow(
                builder.getRequest().getTarget(), mibSupport.bsTunnelControl(),
                new OID(String.valueOf(currentTableRowIndex)),null );    

// TABLE SETUP USED
private  DefaultMOTable buildTunnelTable() {
        MOTableSubIndex[] subIndexes =
            new MOTableSubIndex[] { new MOTableSubIndex(SMIConstants.SYNTAX_INTEGER) };
        MOTableIndex indexDef = new MOTableIndex(subIndexes, false);
        MOColumn[] columns = new MOColumn[10];
        int c = 0;
        columns[c++] =
            new RowStatus(c, 
                         MOAccessImpl.ACCESS_READ_CREATE);     // Tunnel control
        columns[c++] =
            new MOMutableColumn(c, SMIConstants.SYNTAX_INTEGER,
                         MOAccessImpl.ACCESS_READ_CREATE);     // Tunnelindex
        columns[c++] =
            new MOMutableColumn(c, SMIConstants.SYNTAX_OCTET_STRING,
                         MOAccessImpl.ACCESS_READ_CREATE,null);     // Desit/cis ip
        columns[c++] =
            new MOMutableColumn(c, SMIConstants.SYNTAX_OCTET_STRING,
                         MOAccessImpl.ACCESS_READ_CREATE,null);   // Adm iP
        columns[c++] =
            new MOMutableColumn(c, SMIConstants.SYNTAX_OCTET_STRING,
                         MOAccessImpl.ACCESS_READ_CREATE,null);     // Dest uid
        columns[c++] =
            new MOMutableColumn(c, SMIConstants.SYNTAX_INTEGER,
                         MOAccessImpl.ACCESS_READ_CREATE,null);    // Radiomode
        columns[c++] =
            new MOMutableColumn(c, SMIConstants.SYNTAX_INTEGER,
                         MOAccessImpl.ACCESS_READ_CREATE);     // Tunneltype
        columns[c++] =
            new MOMutableColumn(c, SMIConstants.SYNTAX_INTEGER,
                         MOAccessImpl.ACCESS_READ_CREATE);     // TunnelState
        columns[c++] =
            new MOMutableColumn(c, SMIConstants.SYNTAX_INTEGER,
                         MOAccessImpl.ACCESS_READ_CREATE,null);    // Tunnel test
        columns[c++] =
            new MOMutableColumn(c, SMIConstants.SYNTAX_OCTET_STRING,
                         MOAccessImpl.ACCESS_READ_CREATE);     //Last error
        
   
        DefaultMOTable ifTable =
            new DefaultMOTable(new OID(mibSupport.bsTunnelEntry()), indexDef, columns);
        
        MOMutableTableModel model = (MOMutableTableModel) ifTable.getModel();
       
        List<RemotePeer> peers = this.unit.getRemotePeers();
       
        int rowCount = 0;
        
        for (RemotePeer remotePeer : peers) {
            log.debug("Creating new tunnel table row to peer " + remotePeer.uid);
            rowCount++;
            Variable[] rowValues = new Variable[] {
                    new Integer32(RowStatus.active),
                    new Integer32(rowCount),
                    new OctetString(remotePeer.cisIp),
                    new OctetString(remotePeer.uid),
                    new OctetString(remotePeer.admIp),
                    new Integer32(1),
                    new Integer32(1),
                    new Integer32(1),
                    new Integer32(1),
                    new OctetString()
                };
             model.addRow(new DefaultMOMutableRow2PC (new OID(String.valueOf(rowCount))
             , rowValues));
        }
        ifTable.setVolatile(true);
        ifTable.addMOChangeListener(this);
        ifTable.addMOChangeListener(this.unit);
        return ifTable;
      }



More information about the SNMP4J mailing list