void (Object[] rowData) { if (myNeedReset.compareAndSet(true, false)) { dataVector.clear(); fireTableDataChanged(); } Vector<FindPopupItem> v = (Vector)convertToVector(rowData); if (dataVector.isEmpty()) { addRow(v); myResultsPreviewTable.getSelectionModel().setSelectionInterval(0, 0); firstResultPath = v.get(0).getPath(); } else { int p = Collections.binarySearch((Vector<Vector<FindPopupItem>>)((Vector)dataVector), v, COMPARATOR); if (p < 0) { // only insert when not already present. int row = -(p + 1); insertRow(row, v); } } }