diff --git a/pom.xml b/pom.xml index 242c403..685ad2a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 de.srsoftware web4rail - 1.3.55 + 1.3.56 Web4Rail jar Java Model Railway Control diff --git a/src/main/java/de/srsoftware/web4rail/Route.java b/src/main/java/de/srsoftware/web4rail/Route.java index 63a5c80..33c8843 100644 --- a/src/main/java/de/srsoftware/web4rail/Route.java +++ b/src/main/java/de/srsoftware/web4rail/Route.java @@ -386,7 +386,7 @@ public class Route extends BaseClass { private void free() { for (Tile tile : path) { - if (train.onTrace(tile)) { + if (isSet(train) && train.onTrace(tile)) { tile.setState(Status.OCCUPIED, train); } else tile.free(); } @@ -746,8 +746,8 @@ public class Route extends BaseClass { public boolean reset() { LOG.debug("{}.reset()",this); - - // TODO + free(); + train = null; return true; } diff --git a/src/main/java/de/srsoftware/web4rail/moving/Train.java b/src/main/java/de/srsoftware/web4rail/moving/Train.java index a3d90d5..09ec77a 100644 --- a/src/main/java/de/srsoftware/web4rail/moving/Train.java +++ b/src/main/java/de/srsoftware/web4rail/moving/Train.java @@ -932,7 +932,11 @@ public class Train extends BaseClass implements Comparable { public Object stopNow() { setSpeed(0); - listeners.forEach(listener -> listener.on(Listener.Signal.STOP)); + listeners.forEach(listener -> listener.on(Listener.Signal.STOP)); // abort PathFinder + if (isSet(route)) { + route.reset(); + route = null; + } return properties(); } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Contact.java b/src/main/java/de/srsoftware/web4rail/tiles/Contact.java index 2e60e05..db91815 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/Contact.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/Contact.java @@ -85,7 +85,7 @@ public class Contact extends Tile{ state = true; if (isSet(timer)) timer.abort(); Context context = new Context(this); - if (isSet(train)) { + if (isSet(train())) { train.contact(this); context.train(train); }