Skip to content

Commit 16f81d4

Browse files
committed
fixed potential NPE due to concurrency in ui
1 parent 2664fe3 commit 16f81d4

2 files changed

Lines changed: 10 additions & 4 deletions

File tree

core/src/main/java/com/github/rinde/rinsim/core/model/road/GraphRoadModelImpl.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -474,10 +474,7 @@ public Graph<? extends ConnectionData> getGraph() {
474474
*/
475475
@Override
476476
public Optional<? extends Connection<?>> getConnection(RoadUser obj) {
477-
if (registry().isOnConnection(obj)) {
478-
return Optional.of(registry.getConnection(obj));
479-
}
480-
return Optional.absent();
477+
return registry.getOptionalConnection(obj);
481478
}
482479

483480
@Override

core/src/main/java/com/github/rinde/rinsim/core/model/road/GraphSpatialRegistry.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.github.rinde.rinsim.geom.Connection;
2626
import com.github.rinde.rinsim.geom.Point;
2727
import com.google.auto.value.AutoValue;
28+
import com.google.common.base.Optional;
2829
import com.google.common.collect.LinkedHashMultimap;
2930
import com.google.common.collect.SetMultimap;
3031

@@ -133,6 +134,14 @@ public Connection<?> getConnection(T ru) {
133134
return connLocMap.get(ru).connection();
134135
}
135136

137+
public Optional<? extends Connection<?>> getOptionalConnection(T ru) {
138+
final ConnLoc cl = connLocMap.get(ru);
139+
if (cl == null) {
140+
return Optional.absent();
141+
}
142+
return Optional.of(cl.connection());
143+
}
144+
136145
public double getRelativePosition(Point p) {
137146
if (!posMap.containsKey(p)) {
138147
return 0d;

0 commit comments

Comments
 (0)