Re: Help with vector problem



The exception seems to be quite obvious - most probably there simply are fewer than 'i+1' objects in the vector. You may try to write something like System.out.println(moDataTable.size()) to see how many objects there actually /are/ in the vector before accessing it with moDataTable.get(i + 1) .

/philipp

Petterson Mikael schrieb:
Hi,

We get an java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 1 on the following line:

Object tmp = moDataTable.get(i + 1);
The following trace:

System.out.println("MAX:moDataTable is empty");

does not show on the console so it is not empty and it should not enter the loop.


Any ideas what could be wrong?

cheers,

//mikael

My code:

private Vector moDataTable;


public synchronized void add(Object moData) {
if ((moData != null) && (moData instanceof MoData)) {
for (int i = 0; i < moDataTable.size(); i++) {
if (moDataTable.isEmpty()) {
System.out.println("MAX:moDataTable is empty");
}

Object tmp = moDataTable.get(i + 1);

if (tmp instanceof MoData) {
if (((MoData) tmp).getLocalDistinguishedName().equals(((MoData)

moData)

.getLocalDistinguishedName())) {
System.out.println("WARNING!!: there was attempt to add MoData with duplicate LDN, ignoring, "
+ ((MoData) moData)
.getLocalDistinguishedName());
return;
}
}
}
}
}
.