Я пытаюсь обновлять маркеры на jMapViewer один раз каждые 5 секунд. Кажется, это работает нормально, пока вы не переместите карту. В этот момент он выбрасывает java.util.ConcurrentModificationException
.java.util.ConcurrentModificationException при перемещении jMapViewer
Я считаю, что это связано с различными процессами, пытающимися получить доступ к списку маркеров карт одновременно, но я не уверен, как это исправить.
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
loadUnits();
}
}, 5 * 1000, 5 * 1000);
private void loadUnits() {
String query = "SELECT callsign, currentlat,currentlon,previouslat,previouslon, mobile, uniticon FROM unit WHERE isdeleted=0;";
rs = DBase.runQuery(query);
kit.removeAllMapMarkers();
MapMarkerUnit x;
try {
while (rs.next()) {
x = new MapMarkerUnit(rs.getDouble("currentlat"),rs.getDouble("currentlon"));
if (rs.getInt("mobile") == 1) x.setMovement(true);
else x.setMovement(false);
x.setIconName(rs.getString("uniticon"));
x.setPriority(1);
kit.addMapMarker(x);
}
}
catch (SQLException e) {
System.out.print(e.toString());
}
}
Благодарим за помощь.
Киран
Что такое 'rs'? Можете ли вы дать MWE? –
RS - это ResultSet, извлеченный из базы данных MySQL. Извините MWE? Немного новичок в этом. – KieranS
Минимальный рабочий пример, другими словами код, который можно скомпилировать и поэкспериментировать с ... –