diff --git a/bitmex-adapter/build.gradle b/bitmex-adapter/build.gradle index 5cefd6d..2077ddf 100644 --- a/bitmex-adapter/build.gradle +++ b/bitmex-adapter/build.gradle @@ -4,7 +4,7 @@ plugins { } group 'com.bookmap.api.adapter' -version = '0.8.0.10' +version = '0.8.0.11' targetCompatibility = 1.8 sourceCompatibility = 1.8 @@ -19,6 +19,7 @@ repositories { dependencies { compileOnly group: 'com.bookmap.api', name: 'api-core', version: '7.4.0.10' + compileOnly group: 'commons-io', name: 'commons-io', version: '2.6' compileOnly group: 'commons-codec', name: 'commons-codec', version: '1.10' compileOnly group: 'org.apache.commons', name: 'commons-collections4', version: '4.1' compileOnly group: 'org.apache.commons', name: 'commons-lang3', version: '3.7' @@ -26,9 +27,8 @@ dependencies { compileOnly group: 'org.eclipse.jetty.aggregate', name: 'jetty-all', version: '9.3.8.v20160314' compileOnly group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.2' compileOnly group: 'javax.xml.bind', name: 'jaxb-api', version: '2.2.4' - compileOnly group: 'commons-io', name: 'commons-io', version: '2.6' } jar { - archiveBaseName = '7.4.0.10---7.6.1.9999---0---bitmex-adapter--' + archiveBaseName = '7.4.0.10---7.7.1.9999---0---bitmex-adapter--' } \ No newline at end of file diff --git a/bitmex-adapter/src/main/java/com/bookmap/plugins/layer0/bitmex/Provider.java b/bitmex-adapter/src/main/java/com/bookmap/plugins/layer0/bitmex/Provider.java index 2c286a9..8ddac69 100644 --- a/bitmex-adapter/src/main/java/com/bookmap/plugins/layer0/bitmex/Provider.java +++ b/bitmex-adapter/src/main/java/com/bookmap/plugins/layer0/bitmex/Provider.java @@ -1236,6 +1236,15 @@ public void close() { connector.closeSocket(); connector.setInterruptionNeeded(true); } + if (connectorThread != null) { + connectorThread.interrupt(); + try { + connectorThread.join(); + } catch (InterruptedException e) { + Log.warn("Interrupted while waiting for connectorThread to terminate during shutdown", e); + Thread.currentThread().interrupt(); + } + } if (httpClientHolder != null) { try { httpClientHolder.close(); diff --git a/bitmex-adapter/src/main/java/com/bookmap/plugins/layer0/bitmex/adapter/BmConnector.java b/bitmex-adapter/src/main/java/com/bookmap/plugins/layer0/bitmex/adapter/BmConnector.java index 3af6143..412a0fa 100644 --- a/bitmex-adapter/src/main/java/com/bookmap/plugins/layer0/bitmex/adapter/BmConnector.java +++ b/bitmex-adapter/src/main/java/com/bookmap/plugins/layer0/bitmex/adapter/BmConnector.java @@ -507,7 +507,7 @@ private void reportHistoricalExecutions(String ordStatus) { @Override public void run() { - while (!interruptionNeeded.get()) { + while (!interruptionNeeded.get() && !Thread.currentThread().isInterrupted()) { if (!isConnectionEstablished()) { if (!isInitiallyConnected) { @@ -519,7 +519,8 @@ public void run() { try { Thread.sleep(5000); } catch (InterruptedException e) { - Log.error("", e); + Thread.currentThread().interrupt(); + Log.error("Interrupted while waiting for reconnection to finish", e); throw new RuntimeException(); } } @@ -557,7 +558,8 @@ public void run() { try { Thread.sleep(1_000); } catch (InterruptedException e) { - Log.error("", e); + Thread.currentThread().interrupt(); + Log.error("Interrupted BmConnector run thread during sleep, likely shutting down", e); } } if (executionsResetTimer != null) { diff --git a/bitmex-adapter/src/main/java/com/bookmap/plugins/layer0/bitmex/adapter/Constants.java b/bitmex-adapter/src/main/java/com/bookmap/plugins/layer0/bitmex/adapter/Constants.java index b378cf1..4459e69 100644 --- a/bitmex-adapter/src/main/java/com/bookmap/plugins/layer0/bitmex/adapter/Constants.java +++ b/bitmex-adapter/src/main/java/com/bookmap/plugins/layer0/bitmex/adapter/Constants.java @@ -5,7 +5,7 @@ public class Constants { - public static final String version = "v.0.8.0.10"; + public static final String version = "v.0.8.0.11"; public static final String bitmex_Wss = "wss://www.bitmex.com/realtime"; public static final String bitmex_restApi = "https://www.bitmex.com";