diff --git a/pom.xml b/pom.xml index e0d5456..74618a4 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 de.srsoftware web4rail - 1.5.10 + 1.5.11 Web4Rail jar Java Model Railway Control diff --git a/src/main/java/de/srsoftware/web4rail/actions/TriggerContact.java b/src/main/java/de/srsoftware/web4rail/actions/TriggerContact.java index 339da91..f093bc8 100644 --- a/src/main/java/de/srsoftware/web4rail/actions/TriggerContact.java +++ b/src/main/java/de/srsoftware/web4rail/actions/TriggerContact.java @@ -6,6 +6,7 @@ import java.util.Map; import org.json.JSONObject; import de.srsoftware.web4rail.BaseClass; +import de.srsoftware.web4rail.LoadCallback; import de.srsoftware.web4rail.Params; import de.srsoftware.web4rail.tags.Fieldset; import de.srsoftware.web4rail.tags.Window; @@ -42,7 +43,14 @@ public class TriggerContact extends Action { public Action load(JSONObject json) { super.load(json); Id contactId = Id.from(json,CONTACT); - if (isSet(contactId)) contact = Contact.get(contactId); + if (isSet(contactId)) new LoadCallback() { + + @Override + public void afterLoad() { + contact = Contact.get(contactId); + } + }; + return this; } diff --git a/src/main/java/de/srsoftware/web4rail/moving/Train.java b/src/main/java/de/srsoftware/web4rail/moving/Train.java index abe392f..0e907e4 100644 --- a/src/main/java/de/srsoftware/web4rail/moving/Train.java +++ b/src/main/java/de/srsoftware/web4rail/moving/Train.java @@ -1171,7 +1171,9 @@ public class Train extends BaseClass implements Comparable { } else { // behind train if (Route.freeBehindTrain) { LOG.debug("{} is behind train and will be freed in the next step",tile); - trace.add(tile); // old trace will be cleared afterwards + if (tile != route.endBlock()) { // if train is shorter than contact after endblock, the endblock would be cleared… + trace.add(tile); // old trace will be cleared afterwards + } } else { LOG.debug("{} is behind train and will be reset to \"locked\" state",tile); tile.lockFor(context,true);