From f45445f99cac890298743c23480e7d95596bdce1 Mon Sep 17 00:00:00 2001 From: RobinPcrd Date: Thu, 4 Dec 2025 13:34:25 +0100 Subject: [PATCH 1/5] fix: replace lambda by anonymous classes --- pom.xml | 4 +- src/main/java/io/socket/client/Socket.java | 179 ++++++++------ .../java/io/socket/client/ConnectionTest.java | 223 ++++++++++-------- .../socket/client/ServerConnectionTest.java | 39 ++- .../java/io/socket/client/SocketTest.java | 29 ++- 5 files changed, 279 insertions(+), 195 deletions(-) diff --git a/pom.xml b/pom.xml index 3d8fb065..457cb917 100644 --- a/pom.xml +++ b/pom.xml @@ -238,8 +238,8 @@ - 1.8 - 1.8 + 1.7 + 1.7 -Xlint:unchecked diff --git a/src/main/java/io/socket/client/Socket.java b/src/main/java/io/socket/client/Socket.java index b3ce7d50..d398a367 100644 --- a/src/main/java/io/socket/client/Socket.java +++ b/src/main/java/io/socket/client/Socket.java @@ -84,19 +84,31 @@ private void subEvents() { final Manager io = Socket.this.io; Socket.this.subs = new LinkedList() {{ - add(On.on(io, Manager.EVENT_OPEN, args -> { - Socket.this.onopen(); + add(On.on(io, Manager.EVENT_OPEN, new Listener() { + @Override + public void call(Object... args) { + Socket.this.onopen(); + } })); - add(On.on(io, Manager.EVENT_PACKET, args -> { - Socket.this.onpacket((Packet) args[0]); + add(On.on(io, Manager.EVENT_PACKET, new Listener() { + @Override + public void call(Object... args) { + Socket.this.onpacket((Packet) args[0]); + } })); - add(On.on(io, Manager.EVENT_ERROR, args -> { - if (!Socket.this.connected) { - Socket.super.emit(EVENT_CONNECT_ERROR, args[0]); + add(On.on(io, Manager.EVENT_ERROR, new Listener() { + @Override + public void call(Object... args) { + if (!Socket.this.connected) { + Socket.super.emit(EVENT_CONNECT_ERROR, args[0]); + } } })); - add(On.on(io, Manager.EVENT_CLOSE, args -> { - Socket.this.onclose(args.length > 0 ? (String) args[0] : null); + add(On.on(io, Manager.EVENT_CLOSE, new Listener() { + @Override + public void call(Object... args) { + Socket.this.onclose(args.length > 0 ? (String) args[0] : null); + } })); }}; } @@ -133,7 +145,12 @@ public Socket connect() { * @return a reference to this object. */ public Socket send(final Object... args) { - EventThread.exec(() -> Socket.this.emit(EVENT_MESSAGE, args)); + EventThread.exec(new Runnable() { + @Override + public void run() { + Socket.this.emit(EVENT_MESSAGE, args); + } + }); return this; } @@ -150,23 +167,26 @@ public Emitter emit(final String event, final Object... args) { throw new RuntimeException("'" + event + "' is a reserved event name"); } - EventThread.exec(() -> { - Ack ack; - Object[] _args; - int lastIndex = args.length - 1; - - if (args.length > 0 && args[lastIndex] instanceof Ack) { - _args = new Object[lastIndex]; - for (int i = 0; i < lastIndex; i++) { - _args[i] = args[i]; + EventThread.exec(new Runnable() { + @Override + public void run() { + Ack ack; + Object[] _args; + int lastIndex = args.length - 1; + + if (args.length > 0 && args[lastIndex] instanceof Ack) { + _args = new Object[lastIndex]; + for (int i = 0; i < lastIndex; i++) { + _args[i] = args[i]; + } + ack = (Ack) args[lastIndex]; + } else { + _args = args; + ack = null; } - ack = (Ack) args[lastIndex]; - } else { - _args = args; - ack = null; - } - emit(event, _args, ack); + Socket.this.emit(event, _args, ack); + } }); return this; } @@ -180,52 +200,55 @@ public Emitter emit(final String event, final Object... args) { * @return a reference to this object. */ public Emitter emit(final String event, final Object[] args, final Ack ack) { - EventThread.exec(() -> { - JSONArray jsonArgs = new JSONArray(); - jsonArgs.put(event); + EventThread.exec(new Runnable() { + @Override + public void run() { + JSONArray jsonArgs = new JSONArray(); + jsonArgs.put(event); - if (args != null) { - for (Object arg : args) { - jsonArgs.put(arg); + if (args != null) { + for (Object arg : args) { + jsonArgs.put(arg); + } } - } - Packet packet = new Packet<>(Parser.EVENT, jsonArgs); + Packet packet = new Packet<>(Parser.EVENT, jsonArgs); - if (ack != null) { - final int ackId = Socket.this.ids; + if (ack != null) { + final int ackId = Socket.this.ids; - logger.fine(String.format("emitting packet with ack id %d", ackId)); + logger.fine(String.format("emitting packet with ack id %d", ackId)); - if (ack instanceof AckWithTimeout) { - final AckWithTimeout ackWithTimeout = (AckWithTimeout) ack; - ackWithTimeout.schedule(new TimerTask() { - @Override - public void run() { - // remove the ack from the map (to prevent an actual acknowledgement) - acks.remove(ackId); + if (ack instanceof AckWithTimeout) { + final AckWithTimeout ackWithTimeout = (AckWithTimeout) ack; + ackWithTimeout.schedule(new TimerTask() { + @Override + public void run() { + // remove the ack from the map (to prevent an actual acknowledgement) + acks.remove(ackId); - // remove the packet from the buffer (if applicable) - Iterator> iterator = sendBuffer.iterator(); - while (iterator.hasNext()) { - if (iterator.next().id == ackId) { - iterator.remove(); + // remove the packet from the buffer (if applicable) + Iterator> iterator = sendBuffer.iterator(); + while (iterator.hasNext()) { + if (iterator.next().id == ackId) { + iterator.remove(); + } } + + ackWithTimeout.onTimeout(); } + }); + } - ackWithTimeout.onTimeout(); - } - }); + Socket.this.acks.put(ackId, ack); + packet.id = ids++; } - Socket.this.acks.put(ackId, ack); - packet.id = ids++; - } - - if (Socket.this.connected) { - Socket.this.packet(packet); - } else { - Socket.this.sendBuffer.add(packet); + if (Socket.this.connected) { + Socket.this.packet(packet); + } else { + Socket.this.sendBuffer.add(packet); + } } }); return this; @@ -376,23 +399,31 @@ private void onevent(Packet packet) { private Ack ack(final int id) { final Socket self = this; - final boolean[] sent = new boolean[]{false}; - return args -> EventThread.exec(() -> { - if (sent[0]) return; - sent[0] = true; - if (logger.isLoggable(Level.FINE)) { - logger.fine(String.format("sending ack %s", args.length != 0 ? args : null)); - } + final boolean[] sent = new boolean[] {false}; + return new Ack() { + @Override + public void call(final Object... args) { + EventThread.exec(new Runnable() { + @Override + public void run() { + if (sent[0]) return; + sent[0] = true; + if (logger.isLoggable(Level.FINE)) { + logger.fine(String.format("sending ack %s", args.length != 0 ? args : null)); + } - JSONArray jsonArgs = new JSONArray(); - for (Object arg : args) { - jsonArgs.put(arg); - } + JSONArray jsonArgs = new JSONArray(); + for (Object arg : args) { + jsonArgs.put(arg); + } - Packet packet = new Packet<>(Parser.ACK, jsonArgs); - packet.id = id; - self.packet(packet); - }); + Packet packet = new Packet<>(Parser.ACK, jsonArgs); + packet.id = id; + self.packet(packet); + } + }); + } + }; } private void onack(Packet packet) { diff --git a/src/test/java/io/socket/client/ConnectionTest.java b/src/test/java/io/socket/client/ConnectionTest.java index 2f3dc2bf..ae0dcf26 100644 --- a/src/test/java/io/socket/client/ConnectionTest.java +++ b/src/test/java/io/socket/client/ConnectionTest.java @@ -73,28 +73,32 @@ public void startTwoConnectionsWithSamePathAndDifferentQuerystrings() throws Int @Test(timeout = TIMEOUT) public void workWithAcks() throws InterruptedException { final BlockingQueue values = new LinkedBlockingQueue<>(); - socket = client();socket.on(Socket.EVENT_CONNECT, objects -> { - socket.on("ack", args -> { - Ack fn = (Ack) args[0]; - JSONObject data = new JSONObject(); - try { - data.put("test", true); - } catch (JSONException e) { - throw new AssertionError(e); - } - fn.call(5, data); - }); - socket.on("ackBack", args -> { - JSONObject data = (JSONObject)args[1]; - try { - if ((Integer)args[0] == 5 && data.getBoolean("test")) { - values.offer("done"); + socket = client(); + socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() { + @Override + public void call(Object... objects) { + socket.on("ack", args -> { + Ack fn = (Ack) args[0]; + JSONObject data = new JSONObject(); + try { + data.put("test", true); + } catch (JSONException e) { + throw new AssertionError(e); } - } catch (JSONException e) { - throw new AssertionError(e); - } - }); - socket.emit("callAck"); + fn.call(5, data); + }); + socket.on("ackBack", args -> { + JSONObject data = (JSONObject) args[1]; + try { + if ((Integer) args[0] == 5 && data.getBoolean("test")) { + values.offer("done"); + } + } catch (JSONException e) { + throw new AssertionError(e); + } + }); + socket.emit("callAck"); + } }); socket.connect(); values.take(); @@ -147,14 +151,14 @@ public void call(Object... args) { socket.on("ackBack", new Emitter.Listener() { @Override public void call(Object... args) { - byte[] data = (byte[])args[0]; + byte[] data = (byte[]) args[0]; values.offer(data); } }); } }); socket.connect(); - Assert.assertArrayEquals(buf, (byte[])values.take()); + Assert.assertArrayEquals(buf, (byte[]) values.take()); socket.close(); } @@ -171,13 +175,13 @@ public void call(Object... objects) { @Override public void call(Object... args) { - values.offer(args[0]); + values.offer(args[0]); } }); } }); socket.connect(); - Assert.assertArrayEquals(buf, (byte[])values.take()); + Assert.assertArrayEquals(buf, (byte[]) values.take()); socket.close(); } @@ -198,19 +202,19 @@ public void call(Object... args) { } }); socket.connect(); - assertThat((Boolean)values.take(), is(false)); + assertThat((Boolean) values.take(), is(false)); socket.close(); } @Test(timeout = TIMEOUT) public void receiveUTF8MultibyteCharacters() throws InterruptedException { final BlockingQueue values = new LinkedBlockingQueue<>(); - final String[] correct = new String[] { - "てすと", - "Я Б Г Д Ж Й", - "Ä ä Ü ü ß", - "utf8 — string", - "utf8 — string" + final String[] correct = new String[]{ + "てすと", + "Я Б Г Д Ж Й", + "Ä ä Ü ü ß", + "utf8 — string", + "utf8 — string" }; socket = client(); @@ -230,7 +234,7 @@ public void call(Object... args) { }); socket.connect(); for (String expected : correct) { - assertThat((String)values.take(), is(expected)); + assertThat((String) values.take(), is(expected)); } socket.close(); } @@ -293,9 +297,12 @@ public void call(Object... args) { public void reconnectByDefault() throws InterruptedException { final BlockingQueue values = new LinkedBlockingQueue<>(); socket = client(); - socket.io().on(Manager.EVENT_RECONNECT, objects -> { - socket.close(); - values.offer("done"); + socket.io().on(Manager.EVENT_RECONNECT, new Emitter.Listener() { + @Override + public void call(Object... objects) { + socket.close(); + values.offer("done"); + } }); socket.open(); new Timer().schedule(new TimerTask() { @@ -337,20 +344,29 @@ public void call(Object... args) { public void reconnectAutomaticallyAfterReconnectingManually() throws InterruptedException { final BlockingQueue values = new LinkedBlockingQueue<>(); socket = client(); - socket.once(Socket.EVENT_CONNECT, args -> { - socket.disconnect(); - }).once(Socket.EVENT_DISCONNECT, args -> { - socket.io().on(Manager.EVENT_RECONNECT, args1 -> { + socket.once(Socket.EVENT_CONNECT, new Emitter.Listener() { + @Override + public void call(Object... args) { socket.disconnect(); - values.offer("done"); - }); - socket.connect(); - new Timer().schedule(new TimerTask() { - @Override - public void run() { - socket.io().engine.close(); - } - }, 500); + } + }).once(Socket.EVENT_DISCONNECT, new Emitter.Listener() { + @Override + public void call(Object... args) { + socket.io().on(Manager.EVENT_RECONNECT, new Emitter.Listener() { + @Override + public void call(Object... args) { + socket.disconnect(); + values.offer("done"); + } + }); + socket.connect(); + new Timer().schedule(new TimerTask() { + @Override + public void run() { + socket.io().engine.close(); + } + }, 500); + } }); socket.connect(); values.take(); @@ -369,7 +385,7 @@ public void attemptReconnectsAfterAFailedReconnect() throws InterruptedException manager.once(Manager.EVENT_RECONNECT_FAILED, new Emitter.Listener() { @Override public void call(Object... args) { - final int[] reconnects = new int[] {0}; + final int[] reconnects = new int[]{0}; Emitter.Listener reconnectCb = new Emitter.Listener() { @Override public void call(Object... args) { @@ -388,7 +404,7 @@ public void call(Object... args) { } }); socket.connect(); - assertThat((Integer)values.take(), is(2)); + assertThat((Integer) values.take(), is(2)); socket.close(); manager.close(); } @@ -405,10 +421,10 @@ public void reconnectDelayShouldIncreaseEveryTime() throws InterruptedException final Manager manager = new Manager(uri(), opts); socket = manager.socket("/timeout"); - final int[] reconnects = new int[] {0}; - final boolean[] increasingDelay = new boolean[] {true}; - final long[] startTime = new long[] {0}; - final long[] prevDelay = new long[] {0}; + final int[] reconnects = new int[]{0}; + final boolean[] increasingDelay = new boolean[]{true}; + final long[] startTime = new long[]{0}; + final long[] prevDelay = new long[]{0}; manager.on(Manager.EVENT_ERROR, new Emitter.Listener() { @Override @@ -469,7 +485,7 @@ public void run() { } }); socket.connect(); - assertThat((Boolean)values.take(), is(true)); + assertThat((Boolean) values.take(), is(true)); } @Test(timeout = TIMEOUT) @@ -610,7 +626,7 @@ public void tryToReconnectTwiceAndFailWithIncorrectAddress() throws InterruptedE opts.reconnectionDelay = 10; final Manager manager = new Manager(URI.create("http://localhost:3940"), opts); socket = manager.socket("/asd"); - final int[] reconnects = new int[] {0}; + final int[] reconnects = new int[]{0}; Emitter.Listener cb = new Emitter.Listener() { @Override public void call(Object... objects) { @@ -628,7 +644,7 @@ public void call(Object... objects) { }); socket.open(); - assertThat((Integer)values.take(), is(2)); + assertThat((Integer) values.take(), is(2)); socket.close(); manager.close(); } @@ -643,7 +659,7 @@ public void tryToReconnectTwiceAndFailWithImmediateTimeout() throws InterruptedE opts.reconnectionDelay = 10; final Manager manager = new Manager(uri(), opts); - final int[] reconnects = new int[] {0}; + final int[] reconnects = new int[]{0}; Emitter.Listener reconnectCb = new Emitter.Listener() { @Override public void call(Object... objects) { @@ -663,7 +679,7 @@ public void call(Object... objects) { socket = manager.socket("/timeout"); socket.open(); - assertThat((Integer)values.take(), is(2)); + assertThat((Integer) values.take(), is(2)); } @Test(timeout = TIMEOUT) @@ -712,7 +728,7 @@ public void fireReconnectEventsOnSocket() throws InterruptedException { final Manager manager = new Manager(uri(), opts); socket = manager.socket("/timeout_socket"); - final int[] reconnects = new int[] {0}; + final int[] reconnects = new int[]{0}; Emitter.Listener reconnectCb = new Emitter.Listener() { @Override public void call(Object... args) { @@ -731,8 +747,8 @@ public void call(Object... objects) { } }); socket.open(); - assertThat((Integer)values.take(), is(reconnects[0])); - assertThat((Integer)values.take(), is(2)); + assertThat((Integer) values.take(), is(reconnects[0])); + assertThat((Integer) values.take(), is(2)); } @Test(timeout = TIMEOUT) @@ -747,7 +763,7 @@ public void fireReconnectingWithAttemptsNumberWhenReconnectingTwice() throws Int final Manager manager = new Manager(uri(), opts); socket = manager.socket("/timeout_socket"); - final int[] reconnects = new int[] {0}; + final int[] reconnects = new int[]{0}; Emitter.Listener reconnectCb = new Emitter.Listener() { @Override public void call(Object... args) { @@ -766,8 +782,8 @@ public void call(Object... objects) { } }); socket.open(); - assertThat((Integer)values.take(), is(reconnects[0])); - assertThat((Integer)values.take(), is(2)); + assertThat((Integer) values.take(), is(reconnects[0])); + assertThat((Integer) values.take(), is(2)); } @Test(timeout = TIMEOUT) @@ -816,7 +832,7 @@ public void call(Object... args) { socket.connect(); Object data = values.take(); assertThat(data, instanceOf(JSONObject.class)); - assertThat(((JSONObject)data).get("date"), instanceOf(String.class)); + assertThat(((JSONObject) data).get("date"), instanceOf(String.class)); socket.close(); } @@ -839,7 +855,7 @@ public void call(Object... args) { } }); socket.open(); - assertThat((byte[])values.take(), is(buf)); + assertThat((byte[]) values.take(), is(buf)); socket.close(); } @@ -869,9 +885,9 @@ public void call(Object... args) { } }); socket.open(); - JSONObject a = (JSONObject)values.take(); + JSONObject a = (JSONObject) values.take(); assertThat(a.getString("hello"), is("lol")); - assertThat((byte[])a.get("message"), is(buf)); + assertThat((byte[]) a.get("message"), is(buf)); assertThat(a.getString("goodbye"), is("gotcha")); socket.close(); } @@ -896,8 +912,8 @@ public void call(Object... args) { } }); socket.open(); - assertThat((byte[])values.take(), is(buf)); - assertThat((String)values.take(), is("please arrive second")); + assertThat((byte[]) values.take(), is(buf)); + assertThat((String) values.take(), is("please arrive second")); socket.close(); } @@ -906,43 +922,52 @@ public void shouldReceiveBufferedEventAfterReconnect() throws InterruptedExcepti final BlockingQueue events = new LinkedBlockingQueue<>(); socket = client(); - socket.on(Socket.EVENT_CONNECT, args -> { - if (!socket.isRecovered()) { - events.offer("first-connect"); - // Tell server to start buffering scenario - socket.emit("startBufferTest"); + socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() { + @Override + public void call(Object... args) { + if (!socket.isRecovered()) { + events.offer("first-connect"); + // Tell server to start buffering scenario + socket.emit("startBufferTest"); + + // Disconnect engine after 1 second + Timer timer = new Timer(); + timer.schedule(new TimerTask() { + @Override + public void run() { + socket.io().engine.close(); + } + }, 1000); + } else { + // Reconnected with recovery + events.offer("reconnected"); + } + } + }); - // Disconnect engine after 1 second + socket.on(Socket.EVENT_DISCONNECT, new Emitter.Listener() { + @Override + public void call(Object... args) { + events.offer("disconnected"); + // Reconnect after 2 seconds Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { - socket.io().engine.close(); + socket.connect(); } - }, 1000); - } else { - // Reconnected with recovery - events.offer("reconnected"); + }, 2000); } }); - socket.on(Socket.EVENT_DISCONNECT, args -> { - events.offer("disconnected"); - // Reconnect after 2 seconds - Timer timer = new Timer(); - timer.schedule(new TimerTask() { - @Override - public void run() { - socket.connect(); + socket.on("message", new Emitter.Listener() { + @Override + public void call(Object... args) { + if (args[0] instanceof JSONObject) { + JSONObject data = (JSONObject) args[0]; + String text = data.optString("text"); + events.offer(text); } - }, 2000); - }); - - socket.on("message", args -> { - if (args[0] instanceof JSONObject) { - JSONObject data = (JSONObject) args[0]; - String text = data.optString("text"); - events.offer(text); } }); diff --git a/src/test/java/io/socket/client/ServerConnectionTest.java b/src/test/java/io/socket/client/ServerConnectionTest.java index ea22c322..59ea3fc5 100644 --- a/src/test/java/io/socket/client/ServerConnectionTest.java +++ b/src/test/java/io/socket/client/ServerConnectionTest.java @@ -215,15 +215,24 @@ public void broadcast() throws InterruptedException { final BlockingQueue values = new LinkedBlockingQueue<>(); socket = client(); - socket.on(Socket.EVENT_CONNECT, objects -> { - socket2 = client(); - - socket2.on(Socket.EVENT_CONNECT, objects1 -> { - socket2.emit("broadcast", "hi"); - }); - socket2.connect(); - }).on("broadcastBack", args -> { - values.offer(args); + socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() { + @Override + public void call(Object... objects) { + socket2 = client(); + + socket2.on(Socket.EVENT_CONNECT, new Emitter.Listener() { + @Override + public void call(Object... objects) { + socket2.emit("broadcast", "hi"); + } + }); + socket2.connect(); + } + }).on("broadcastBack", new Emitter.Listener() { + @Override + public void call(Object... args) { + values.offer(args); + } }); socket.connect(); @@ -240,7 +249,17 @@ public void room() throws InterruptedException { final BlockingQueue values = new LinkedBlockingQueue<>(); socket = client(); - socket.on(Socket.EVENT_CONNECT, objects -> socket.emit("room", "hi")).on("roomBack", args -> values.offer(args)); + socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() { + @Override + public void call(Object... objects) { + socket.emit("room", "hi"); + } + }).on("roomBack", new Emitter.Listener() { + @Override + public void call(Object... args) { + values.offer(args); + } + }); socket.connect(); Object[] args = (Object[]) values.take(); diff --git a/src/test/java/io/socket/client/SocketTest.java b/src/test/java/io/socket/client/SocketTest.java index 88bd141f..623373e7 100644 --- a/src/test/java/io/socket/client/SocketTest.java +++ b/src/test/java/io/socket/client/SocketTest.java @@ -409,14 +409,20 @@ public void shouldCallCatchAllListenerForIncomingPackets() throws InterruptedExc socket = client(); - socket.on("message", args -> { - socket.emit("echo", 1, "2", new byte[]{3}); + socket.on("message", new Emitter.Listener() { + @Override + public void call(Object... args) { + socket.emit("echo", 1, "2", new byte[] { 3 }); - socket.onAnyIncoming(args1 -> { - for (Object arg : args1) { - values.offer(arg); - } - }); + socket.onAnyIncoming(new Emitter.Listener() { + @Override + public void call(Object... args) { + for (Object arg : args) { + values.offer(arg); + } + } + }); + } }); socket.connect(); @@ -435,9 +441,12 @@ public void shouldCallCatchAllListenerForOutgoingPackets() throws InterruptedExc socket.emit("echo", 1, "2", new byte[]{3}); - socket.onAnyOutgoing(args -> { - for (Object arg : args) { - values.offer(arg); + socket.onAnyOutgoing(new Emitter.Listener() { + @Override + public void call(Object... args) { + for (Object arg : args) { + values.offer(arg); + } } }); From 831267728602a9a2f9bae6881916aac78923dafb Mon Sep 17 00:00:00 2001 From: RobinPcrd Date: Thu, 4 Dec 2025 17:09:18 +0100 Subject: [PATCH 2/5] fix: replace lambda by anonymous classes --- src/main/java/io/socket/client/Socket.java | 13 +++-- .../java/io/socket/client/Connection.java | 48 +++++++++++-------- 2 files changed, 35 insertions(+), 26 deletions(-) diff --git a/src/main/java/io/socket/client/Socket.java b/src/main/java/io/socket/client/Socket.java index d398a367..d13f9477 100644 --- a/src/main/java/io/socket/client/Socket.java +++ b/src/main/java/io/socket/client/Socket.java @@ -121,12 +121,15 @@ public boolean isActive() { * Connects the socket. */ public Socket open() { - EventThread.exec(() -> { - if (Socket.this.connected || Socket.this.io.isReconnecting()) return; + EventThread.exec(new Runnable() { + @Override + public void run() { + if (Socket.this.connected || Socket.this.io.isReconnecting()) return; - Socket.this.subEvents(); - Socket.this.io.open(); // ensure open - if (Manager.ReadyState.OPEN == Socket.this.io.readyState) Socket.this.onopen(); + Socket.this.subEvents(); + Socket.this.io.open(); // ensure open + if (Manager.ReadyState.OPEN == Socket.this.io.readyState) Socket.this.onopen(); + } }); return this; } diff --git a/src/test/java/io/socket/client/Connection.java b/src/test/java/io/socket/client/Connection.java index f270a31b..6ec4f04b 100644 --- a/src/test/java/io/socket/client/Connection.java +++ b/src/test/java/io/socket/client/Connection.java @@ -55,33 +55,39 @@ private Process startServerProcess(String script, int port) throws IOException { } private Future startServerOutput(Process process, String serverName, CountDownLatch latch) { - return serverService.submit(() -> { - BufferedReader reader = new BufferedReader( - new InputStreamReader(process.getInputStream())); - String line; - try { - line = reader.readLine(); - latch.countDown(); - do { - logger.fine(serverName + " SERVER OUT: " + line); - } while ((line = reader.readLine()) != null); - } catch (IOException e) { - logger.warning(e.getMessage()); + return serverService.submit(new Runnable() { + @Override + public void run() { + BufferedReader reader = new BufferedReader( + new InputStreamReader(process.getInputStream())); + String line; + try { + line = reader.readLine(); + latch.countDown(); + do { + logger.fine(serverName + " SERVER OUT: " + line); + } while ((line = reader.readLine()) != null); + } catch (IOException e) { + logger.warning(e.getMessage()); + } } }); } private Future startServerError(Process process, String serverName) { - return serverService.submit(() -> { - BufferedReader reader = new BufferedReader( - new InputStreamReader(process.getErrorStream())); - String line; - try { - while ((line = reader.readLine()) != null) { - logger.fine(serverName + " SERVER ERR: " + line); + return serverService.submit(new Runnable() { + @Override + public void run() { + BufferedReader reader = new BufferedReader( + new InputStreamReader(process.getErrorStream())); + String line; + try { + while ((line = reader.readLine()) != null) { + logger.fine(serverName + " SERVER ERR: " + line); + } + } catch (IOException e) { + logger.warning(e.getMessage()); } - } catch (IOException e) { - logger.warning(e.getMessage()); } }); } From f4031f15f9051baeb66cc1f35287fbaa91dd3e90 Mon Sep 17 00:00:00 2001 From: RobinPcrd Date: Thu, 4 Dec 2025 17:11:06 +0100 Subject: [PATCH 3/5] fix: replace lambda by anonymous classes --- .../java/io/socket/client/ConnectionTest.java | 36 +++++++++++-------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/src/test/java/io/socket/client/ConnectionTest.java b/src/test/java/io/socket/client/ConnectionTest.java index ae0dcf26..fd57b124 100644 --- a/src/test/java/io/socket/client/ConnectionTest.java +++ b/src/test/java/io/socket/client/ConnectionTest.java @@ -77,24 +77,30 @@ public void workWithAcks() throws InterruptedException { socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() { @Override public void call(Object... objects) { - socket.on("ack", args -> { - Ack fn = (Ack) args[0]; - JSONObject data = new JSONObject(); - try { - data.put("test", true); - } catch (JSONException e) { - throw new AssertionError(e); + socket.on("ack", new Emitter.Listener() { + @Override + public void call(Object... args) { + Ack fn = (Ack) args[0]; + JSONObject data = new JSONObject(); + try { + data.put("test", true); + } catch (JSONException e) { + throw new AssertionError(e); + } + fn.call(5, data); } - fn.call(5, data); }); - socket.on("ackBack", args -> { - JSONObject data = (JSONObject) args[1]; - try { - if ((Integer) args[0] == 5 && data.getBoolean("test")) { - values.offer("done"); + socket.on("ackBack", new Emitter.Listener() { + @Override + public void call(Object... args) { + JSONObject data = (JSONObject)args[1]; + try { + if ((Integer)args[0] == 5 && data.getBoolean("test")) { + values.offer("done"); + } + } catch (JSONException e) { + throw new AssertionError(e); } - } catch (JSONException e) { - throw new AssertionError(e); } }); socket.emit("callAck"); From 227c88a5f16a9ff64e69d07005d2ea00338e36e1 Mon Sep 17 00:00:00 2001 From: RobinPcrd Date: Thu, 4 Dec 2025 17:13:05 +0100 Subject: [PATCH 4/5] fix --- src/test/java/io/socket/client/Connection.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/io/socket/client/Connection.java b/src/test/java/io/socket/client/Connection.java index 6ec4f04b..cc05a6e6 100644 --- a/src/test/java/io/socket/client/Connection.java +++ b/src/test/java/io/socket/client/Connection.java @@ -54,7 +54,7 @@ private Process startServerProcess(String script, int port) throws IOException { return Runtime.getRuntime().exec(String.format(script, nsp()), createEnv(port)); } - private Future startServerOutput(Process process, String serverName, CountDownLatch latch) { + private Future startServerOutput(final Process process, String serverName, CountDownLatch latch) { return serverService.submit(new Runnable() { @Override public void run() { @@ -74,7 +74,7 @@ public void run() { }); } - private Future startServerError(Process process, String serverName) { + private Future startServerError(final Process process, String serverName) { return serverService.submit(new Runnable() { @Override public void run() { From 750990ae1ae53f762ea113451dd13187f0927d3e Mon Sep 17 00:00:00 2001 From: RobinPcrd Date: Thu, 4 Dec 2025 17:14:08 +0100 Subject: [PATCH 5/5] fix --- src/test/java/io/socket/client/Connection.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/io/socket/client/Connection.java b/src/test/java/io/socket/client/Connection.java index cc05a6e6..5e185dce 100644 --- a/src/test/java/io/socket/client/Connection.java +++ b/src/test/java/io/socket/client/Connection.java @@ -54,7 +54,7 @@ private Process startServerProcess(String script, int port) throws IOException { return Runtime.getRuntime().exec(String.format(script, nsp()), createEnv(port)); } - private Future startServerOutput(final Process process, String serverName, CountDownLatch latch) { + private Future startServerOutput(final Process process, final String serverName, final CountDownLatch latch) { return serverService.submit(new Runnable() { @Override public void run() { @@ -74,7 +74,7 @@ public void run() { }); } - private Future startServerError(final Process process, String serverName) { + private Future startServerError(final Process process, final String serverName) { return serverService.submit(new Runnable() { @Override public void run() {