jMapViewer のマーカーを 5 秒ごとに更新しようとしています。マップを移動するまで、これはうまく機能しているようです。この時点で、java.util.ConcurrentModificationException
.
これは、さまざまなプロセスが同時にマップ マーカー リストにアクセスしようとしていることに関係していると思いますが、修正方法がわかりません。
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());
}
}
ご協力いただきありがとうございます。
キーラン