From 387da6e6cdea3afc842533bd9eb3f7a65133f78c Mon Sep 17 00:00:00 2001 From: Gideon le Grange Date: Mon, 8 Feb 2016 22:16:09 +0200 Subject: [PATCH] Change to fix spurious stack trace on connection close, #34 --- .../mikrotik/impl/ApiConnectionImpl.java | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/main/java/me/legrange/mikrotik/impl/ApiConnectionImpl.java b/src/main/java/me/legrange/mikrotik/impl/ApiConnectionImpl.java index 7db19c2..b7ef880 100644 --- a/src/main/java/me/legrange/mikrotik/impl/ApiConnectionImpl.java +++ b/src/main/java/me/legrange/mikrotik/impl/ApiConnectionImpl.java @@ -14,6 +14,8 @@ import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.LinkedBlockingQueue; +import java.util.logging.Level; +import java.util.logging.Logger; import javax.net.SocketFactory; import me.legrange.mikrotik.ApiConnection; import me.legrange.mikrotik.ApiConnectionException; @@ -199,18 +201,25 @@ public final class ApiConnectionImpl extends ApiConnection { try { String s = Util.decode(in); if (s != null) { - queue.put(s); + put(s); } } catch (ApiDataException ex) { - try { - queue.put(ex); - } catch (InterruptedException ex2) { + put(ex); + } catch (ApiConnectionException ex) { + if (connected || !sock.isClosed()) { + put(ex); } - } catch (ApiConnectionException | InterruptedException ex) { - ex.printStackTrace(); } } } + + private void put(Object data) { + try { + queue.put(data); + } catch (InterruptedException ex) { + } + } + private final LinkedBlockingQueue queue = new LinkedBlockingQueue(40); }