diff --git a/pom.xml b/pom.xml
index 3ee4895..27e3a13 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
de.srsoftware
web4rail
- 0.10.1
+ 0.10.2
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 0138141..a7dd9ad 100644
--- a/src/main/java/de/srsoftware/web4rail/Route.java
+++ b/src/main/java/de/srsoftware/web4rail/Route.java
@@ -342,7 +342,10 @@ public class Route extends BaseClass{
setSignals(Signal.STOP);
for (Tile tile : path) tile.setRoute(null);
Tile lastTile = path.lastElement();
- if (lastTile instanceof Contact) lastTile.set(null);
+ if (lastTile instanceof Contact) {
+ lastTile.set(null);
+ train.removeFromTrace(lastTile);
+ }
train.set(endBlock);
train.heading(endDirection.inverse());
}
diff --git a/src/main/java/de/srsoftware/web4rail/moving/Train.java b/src/main/java/de/srsoftware/web4rail/moving/Train.java
index a5372c2..4f963ad 100644
--- a/src/main/java/de/srsoftware/web4rail/moving/Train.java
+++ b/src/main/java/de/srsoftware/web4rail/moving/Train.java
@@ -589,6 +589,7 @@ public class Train extends BaseClass implements Comparable {
public void showTrace() {
int remainingLength = length();
+ if (remainingLength<1) remainingLength=1;
for (int i=0; i0) {
@@ -605,4 +606,9 @@ public class Train extends BaseClass implements Comparable {
public void dropTrace() {
while (!trace.isEmpty()) trace.removeFirst().set(null);
}
+
+ public void removeFromTrace(Tile tile) {
+ trace.remove(tile);
+
+ }
}
diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Block.java b/src/main/java/de/srsoftware/web4rail/tiles/Block.java
index f59710f..fb04e51 100644
--- a/src/main/java/de/srsoftware/web4rail/tiles/Block.java
+++ b/src/main/java/de/srsoftware/web4rail/tiles/Block.java
@@ -102,12 +102,13 @@ public abstract class Block extends StretchableTile{
if (params.containsKey(Train.HEAD)) {
int trainId = Integer.parseInt(params.get(Train.HEAD));
if (trainId == 0) {
+ if (isSet(train)) train.dropTrace();
train = null;
} else {
- Train dummy = Train.get(trainId);
- if (isSet(dummy) && dummy != train) {
- dummy.set(this);
- dummy.dropTrace();
+ Train newTrain = Train.get(trainId);
+ if (isSet(newTrain) && newTrain != train) {
+ newTrain.set(this);
+ newTrain.dropTrace();
}
}
}