@Override public String[] listLogs() { if (existingMessages == null) { Vector<String> list = new Vector<String>(); Vector<Integer> indexes = new Vector<Integer>(); for (int i = 0; i < index.getNumberOfMessages(); i++) { int type = index.typeOf(i); if (!indexes.contains(type)) { indexes.add(type); String msgName = index.getDefinitions().getMessageName(type); if (msgName == null) { System.err.println( "Message type not found in the definitions: " + type + ", " + (index.getNumberOfMessages() - i)); } else list.add(index.getDefinitions().getMessageName(type)); } } existingMessages = list.toArray(new String[list.size()]); } return existingMessages; }