diff --git a/src/main/java/forge/control/input/InputControl.java b/src/main/java/forge/control/input/InputControl.java index b4b48c19020..0e67e24e4cc 100644 --- a/src/main/java/forge/control/input/InputControl.java +++ b/src/main/java/forge/control/input/InputControl.java @@ -17,7 +17,8 @@ */ package forge.control.input; -import java.util.Stack; +import java.util.concurrent.BlockingDeque; +import java.util.concurrent.LinkedBlockingDeque; import forge.Singletons; import forge.game.GameAge; @@ -44,7 +45,7 @@ public class InputControl extends MyObservable implements java.io.Serializable { /** Constant serialVersionUID=3955194449319994301L. */ private static final long serialVersionUID = 3955194449319994301L; - private final Stack inputStack = new Stack(); + private final BlockingDeque inputStack = new LinkedBlockingDeque(); private final MatchController match; public InputControl(MatchController matchController) { @@ -133,9 +134,9 @@ public class InputControl extends MyObservable implements java.io.Serializable { if ( age != GameAge.Play ) return inputLock; - if (!this.inputStack.isEmpty()) { // incoming input to Control - return this.inputStack.peek(); - } + Input topMost = inputStack.peek(); // incoming input to Control + if (topMost != null ) + return topMost; final PhaseHandler handler = game.getPhaseHandler(); final PhaseType phase = handler.getPhase();