diff --git a/src/src/main/java/com/my/graphiteDigesterBg/diframe/connection/DiConWebsocket.java b/src/src/main/java/com/my/graphiteDigesterBg/diframe/connection/DiConWebsocket.java index 250b865..2f4bbc7 100644 --- a/src/src/main/java/com/my/graphiteDigesterBg/diframe/connection/DiConWebsocket.java +++ b/src/src/main/java/com/my/graphiteDigesterBg/diframe/connection/DiConWebsocket.java @@ -12,10 +12,8 @@ import java.nio.ByteOrder; import java.nio.CharBuffer; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.List; -import java.util.Timer; -import java.util.TimerTask; +import java.util.*; + public class DiConWebsocket implements DiDeviceConnection { // logger public static final Logger LOG = LoggerFactory.getLogger(DiConWebsocket.class); @@ -28,7 +26,7 @@ public class DiConWebsocket implements DiDeviceConnection { // constructor public DiConWebsocket() { - this.requests = new ArrayList<>(); + this.requests = new Vector<>(); } @Override @@ -54,7 +52,7 @@ public class DiConWebsocket implements DiDeviceConnection { } @Override - public void call(DiCommandRequest request) { + synchronized public void call(DiCommandRequest request) { this.requests.add(request); // build cmd from request.parameter @@ -72,6 +70,7 @@ public class DiConWebsocket implements DiDeviceConnection { } catch (InterruptedException e) { throw new RuntimeException(e); } + this.requests.remove(request); } LOG.info("Command <= {}", DiByteBuffer.toHex(request.response)); }