From 24ad32329b27276a8264f1af175c81b8a979a467 Mon Sep 17 00:00:00 2001 From: Francesco Date: Tue, 2 Sep 2025 17:37:40 +0200 Subject: [PATCH 1/2] add changes to release resources when the channel becomes inactive --- .../java/abeth/protocol/AbEthProtocolLogic.java | 5 +++++ .../java/ads/protocol/AdsProtocolLogic.java | 5 +++++ .../bacnetip/protocol/BacNetIpProtocolLogic.java | 5 +++++ .../java/cbus/protocol/CBusProtocolLogic.java | 5 +++++ .../plc4x/java/can/adapter/CANDriverAdapter.java | 5 +++++ .../protocol/GenericCANProtocolLogic.java | 5 +++++ .../canopen/protocol/CANOpenProtocolLogic.java | 5 +++++ .../java/eip/base/protocol/EipProtocolLogic.java | 5 +++++ .../readwrite/protocol/FirmataProtocolLogic.java | 5 +++++ .../readwrite/protocol/Iec608705104Protocol.java | 5 +++++ .../knxnetip/protocol/KnxNetIpProtocolLogic.java | 5 +++++ .../base/protocol/ModbusProtocolLogic.java | 6 +++++- .../tcp/protocol/ModbusTcpProtocolLogic.java | 5 +++++ .../java/opcua/protocol/OpcuaProtocolLogic.java | 4 ++++ .../protocol/OpenProtocolProtocolLogic.java | 4 ++++ .../java/plc4x/protocol/Plc4xProtocolLogic.java | 5 +++++ .../profinet/protocol/ProfinetProtocolLogic.java | 5 +++++ .../profinet/protocol/ProfinetProtocolLogic.java | 5 +++++ .../s7/readwrite/protocol/S7ProtocolLogic.java | 6 +++++- .../readwrite/protocol/S7ProtocolLogic.java | 8 ++++++-- .../apache/plc4x/java/spi/Plc4xNettyWrapper.java | 9 +++++++++ .../apache/plc4x/java/spi/Plc4xProtocolBase.java | 2 ++ .../DefaultNettyPlcConnectionTest.java | 16 +++++++++++++--- .../plc4x/java/spi/connection/TestProtocol.java | 5 +++++ 24 files changed, 128 insertions(+), 7 deletions(-) diff --git a/plc4j/drivers/ab-eth/src/main/java/org/apache/plc4x/java/abeth/protocol/AbEthProtocolLogic.java b/plc4j/drivers/ab-eth/src/main/java/org/apache/plc4x/java/abeth/protocol/AbEthProtocolLogic.java index 9eca835b727..93d7f4c323f 100644 --- a/plc4j/drivers/ab-eth/src/main/java/org/apache/plc4x/java/abeth/protocol/AbEthProtocolLogic.java +++ b/plc4j/drivers/ab-eth/src/main/java/org/apache/plc4x/java/abeth/protocol/AbEthProtocolLogic.java @@ -214,4 +214,9 @@ private PlcResponseCode decodeResponseCode(short status) { return PlcResponseCode.NOT_FOUND; } + @Override + public void channelInactive(ConversationContext context) { + tm.shutdown(); + } + } diff --git a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/protocol/AdsProtocolLogic.java b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/protocol/AdsProtocolLogic.java index 1ca0279f13d..f6b73a9b5d5 100644 --- a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/protocol/AdsProtocolLogic.java +++ b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/protocol/AdsProtocolLogic.java @@ -1984,4 +1984,9 @@ protected byte[] getNullByteTerminatedArray(String value) { return nullTerminatedBytes; } + @Override + public void channelInactive(ConversationContext context) { + tm.shutdown(); + } + } diff --git a/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/protocol/BacNetIpProtocolLogic.java b/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/protocol/BacNetIpProtocolLogic.java index ecf8b79d403..cb386c39ab5 100644 --- a/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/protocol/BacNetIpProtocolLogic.java +++ b/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/protocol/BacNetIpProtocolLogic.java @@ -288,4 +288,9 @@ private String toString(BacNetIpTag tag) { return tag.getDeviceIdentifier() + "/" + tag.getObjectType() + "/" + tag.getObjectInstance(); } + @Override + public void channelInactive(ConversationContext context) { + // Nothing to do here ... + } + } diff --git a/plc4j/drivers/c-bus/src/main/java/org/apache/plc4x/java/cbus/protocol/CBusProtocolLogic.java b/plc4j/drivers/c-bus/src/main/java/org/apache/plc4x/java/cbus/protocol/CBusProtocolLogic.java index 41d27fe5a6e..1a6c22b399f 100644 --- a/plc4j/drivers/c-bus/src/main/java/org/apache/plc4x/java/cbus/protocol/CBusProtocolLogic.java +++ b/plc4j/drivers/c-bus/src/main/java/org/apache/plc4x/java/cbus/protocol/CBusProtocolLogic.java @@ -78,4 +78,9 @@ public CompletableFuture read(PlcReadRequest readRequest) { protected void decode(ConversationContext context, CBusCommand msg) throws Exception { } + @Override + public void channelInactive(ConversationContext context) { + tm.shutdown(); + } + } diff --git a/plc4j/drivers/can/src/main/java/org/apache/plc4x/java/can/adapter/CANDriverAdapter.java b/plc4j/drivers/can/src/main/java/org/apache/plc4x/java/can/adapter/CANDriverAdapter.java index bbffecdb60e..48d711260b4 100644 --- a/plc4j/drivers/can/src/main/java/org/apache/plc4x/java/can/adapter/CANDriverAdapter.java +++ b/plc4j/drivers/can/src/main/java/org/apache/plc4x/java/can/adapter/CANDriverAdapter.java @@ -113,4 +113,9 @@ public void close(ConversationContext context) { delegate.close(new ConversationContextWrapper<>(context, wireType, adapter, frameHandler, context.getAuthentication())); } + @Override + public void channelInactive(ConversationContext context) { + delegate.close(new ConversationContextWrapper<>(context, wireType, adapter, frameHandler, context.getAuthentication())); + } + } diff --git a/plc4j/drivers/can/src/main/java/org/apache/plc4x/java/can/generic/protocol/GenericCANProtocolLogic.java b/plc4j/drivers/can/src/main/java/org/apache/plc4x/java/can/generic/protocol/GenericCANProtocolLogic.java index f5704b3b6b2..64231971177 100644 --- a/plc4j/drivers/can/src/main/java/org/apache/plc4x/java/can/generic/protocol/GenericCANProtocolLogic.java +++ b/plc4j/drivers/can/src/main/java/org/apache/plc4x/java/can/generic/protocol/GenericCANProtocolLogic.java @@ -233,4 +233,9 @@ public PlcConsumerRegistration register(Consumer consumer, public void unregister(PlcConsumerRegistration registration) { consumers.remove(registration); } + + @Override + public void channelInactive(ConversationContext context) { + tm.shutdown(); + } } diff --git a/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/protocol/CANOpenProtocolLogic.java b/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/protocol/CANOpenProtocolLogic.java index 9124cab003d..20834065a6f 100644 --- a/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/protocol/CANOpenProtocolLogic.java +++ b/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/protocol/CANOpenProtocolLogic.java @@ -453,4 +453,9 @@ public void onDisconnect(ConversationContext context) { } } + @Override + public void channelInactive(ConversationContext context) { + tm.shutdown(); + } + } diff --git a/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/base/protocol/EipProtocolLogic.java b/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/base/protocol/EipProtocolLogic.java index 14b26360e72..c93e9ded834 100644 --- a/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/base/protocol/EipProtocolLogic.java +++ b/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/base/protocol/EipProtocolLogic.java @@ -1355,4 +1355,9 @@ private PlcResponseCode decodeResponseCode(int status) { } } + @Override + public void channelInactive(ConversationContext context) { + tm.shutdown(); + } + } diff --git a/plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/protocol/FirmataProtocolLogic.java b/plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/protocol/FirmataProtocolLogic.java index 53179a5fef7..42da51a8222 100644 --- a/plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/protocol/FirmataProtocolLogic.java +++ b/plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/protocol/FirmataProtocolLogic.java @@ -320,4 +320,9 @@ protected BitSet getDigitalValues(int byteBlock, List data) { return BitSet.valueOf(bitSetData); } + @Override + public void channelInactive(ConversationContext context) { + connected.set(false); + } + } diff --git a/plc4j/drivers/iec-60870/src/main/java/org/apache/plc4x/java/iec608705104/readwrite/protocol/Iec608705104Protocol.java b/plc4j/drivers/iec-60870/src/main/java/org/apache/plc4x/java/iec608705104/readwrite/protocol/Iec608705104Protocol.java index 61e4a41e2cb..a67ac9d29a2 100644 --- a/plc4j/drivers/iec-60870/src/main/java/org/apache/plc4x/java/iec608705104/readwrite/protocol/Iec608705104Protocol.java +++ b/plc4j/drivers/iec-60870/src/main/java/org/apache/plc4x/java/iec608705104/readwrite/protocol/Iec608705104Protocol.java @@ -235,4 +235,9 @@ protected void publishEvent(LocalDateTime timeStamp, Iec608705104Tag tag, PlcVal } } + @Override + public void channelInactive(ConversationContext context) { + tm.shutdown(); + } + } diff --git a/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpProtocolLogic.java b/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpProtocolLogic.java index 7b258a86ec6..344dde411ef 100644 --- a/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpProtocolLogic.java +++ b/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpProtocolLogic.java @@ -640,4 +640,9 @@ protected static String toString(KnxGroupAddress groupAddress) { throw new PlcRuntimeException("Unsupported Group Address Type " + groupAddress.getClass().getName()); } + @Override + public void channelInactive(ConversationContext context) { + tm.shutdown(); + } + } diff --git a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/base/protocol/ModbusProtocolLogic.java b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/base/protocol/ModbusProtocolLogic.java index 4e82e16b219..54640702fa2 100644 --- a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/base/protocol/ModbusProtocolLogic.java +++ b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/base/protocol/ModbusProtocolLogic.java @@ -63,6 +63,11 @@ public void close(ConversationContext context) { // Nothing to do here ... } + @Override + public void channelInactive(ConversationContext context) { + // Nothing to do here ... + } + @Override protected void decode(ConversationContext context, T msg) throws Exception { super.decode(context, msg); @@ -417,5 +422,4 @@ public static byte[] byteSwap(byte[] in) { } return out; } - } diff --git a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/tcp/protocol/ModbusTcpProtocolLogic.java b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/tcp/protocol/ModbusTcpProtocolLogic.java index e1615118a9e..5cd31c84517 100644 --- a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/tcp/protocol/ModbusTcpProtocolLogic.java +++ b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/tcp/protocol/ModbusTcpProtocolLogic.java @@ -66,6 +66,11 @@ public void close(ConversationContext context) { tm.shutdown(); } + @Override + public void channelInactive(ConversationContext context) { + tm.shutdown(); + } + @Override public CompletableFuture ping(PlcPingRequest pingRequest) { CompletableFuture future = new CompletableFuture<>(); diff --git a/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/protocol/OpcuaProtocolLogic.java b/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/protocol/OpcuaProtocolLogic.java index c8f735fbff6..923cd64d1c8 100644 --- a/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/protocol/OpcuaProtocolLogic.java +++ b/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/protocol/OpcuaProtocolLogic.java @@ -901,4 +901,8 @@ private static void bridge(RequestTransaction transaction, CompletableFuture } } + @Override + public void channelInactive(ConversationContext context) { + tm.shutdown(); + } } diff --git a/plc4j/drivers/open-protocol/src/main/java/org/apache/plc4x/java/openprotocol/protocol/OpenProtocolProtocolLogic.java b/plc4j/drivers/open-protocol/src/main/java/org/apache/plc4x/java/openprotocol/protocol/OpenProtocolProtocolLogic.java index 0a639c09358..256d3a8306f 100644 --- a/plc4j/drivers/open-protocol/src/main/java/org/apache/plc4x/java/openprotocol/protocol/OpenProtocolProtocolLogic.java +++ b/plc4j/drivers/open-protocol/src/main/java/org/apache/plc4x/java/openprotocol/protocol/OpenProtocolProtocolLogic.java @@ -80,4 +80,8 @@ public PlcConsumerRegistration register(Consumer consumer, public void unregister(PlcConsumerRegistration plcConsumerRegistration) { } + @Override + public void channelInactive(ConversationContext context) { + } + } diff --git a/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/protocol/Plc4xProtocolLogic.java b/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/protocol/Plc4xProtocolLogic.java index 3d9288e1e44..13549c36366 100644 --- a/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/protocol/Plc4xProtocolLogic.java +++ b/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/protocol/Plc4xProtocolLogic.java @@ -200,4 +200,9 @@ protected void decode(ConversationContext context, Plc4xMessage ms super.decode(context, msg); } + @Override + public void channelInactive(ConversationContext context) { + tm.shutdown(); + } + } diff --git a/plc4j/drivers/profinet-ng/src/main/java/org/apache/plc4x/java/profinet/protocol/ProfinetProtocolLogic.java b/plc4j/drivers/profinet-ng/src/main/java/org/apache/plc4x/java/profinet/protocol/ProfinetProtocolLogic.java index 29990149782..9cb98b9c2da 100644 --- a/plc4j/drivers/profinet-ng/src/main/java/org/apache/plc4x/java/profinet/protocol/ProfinetProtocolLogic.java +++ b/plc4j/drivers/profinet-ng/src/main/java/org/apache/plc4x/java/profinet/protocol/ProfinetProtocolLogic.java @@ -905,4 +905,9 @@ protected int getDataTypeLengthInBytes(PlcValueType dataType) { throw new PlcRuntimeException("Length undefined"); } + @Override + public void channelInactive(ConversationContext context) { + context.getChannel().close(); + } + } diff --git a/plc4j/drivers/profinet/src/main/java/org/apache/plc4x/java/profinet/protocol/ProfinetProtocolLogic.java b/plc4j/drivers/profinet/src/main/java/org/apache/plc4x/java/profinet/protocol/ProfinetProtocolLogic.java index 50ea805d117..587bb6790f4 100644 --- a/plc4j/drivers/profinet/src/main/java/org/apache/plc4x/java/profinet/protocol/ProfinetProtocolLogic.java +++ b/plc4j/drivers/profinet/src/main/java/org/apache/plc4x/java/profinet/protocol/ProfinetProtocolLogic.java @@ -271,4 +271,9 @@ public CompletableFuture subscribe(PlcSubscriptionReque protected void decode(ConversationContext context, Ethernet_Frame msg) throws Exception { super.decode(context, msg); } + + @Override + public void channelInactive(ConversationContext context) { + // TODO:- Do something here + } } diff --git a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java index bc759e2c4b3..f6b2844e221 100644 --- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java +++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java @@ -2494,4 +2494,8 @@ public int getCurLength() { } -} + @Override + public void channelInactive(ConversationContext context) { + tm.shutdown(); + } +} \ No newline at end of file diff --git a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7light/readwrite/protocol/S7ProtocolLogic.java b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7light/readwrite/protocol/S7ProtocolLogic.java index 357e7ea02a9..c4bbd67a21e 100644 --- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7light/readwrite/protocol/S7ProtocolLogic.java +++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7light/readwrite/protocol/S7ProtocolLogic.java @@ -88,6 +88,11 @@ public void close(ConversationContext context) { tm.shutdown(); } + @Override + public void channelInactive(ConversationContext context) { + tm.shutdown(); + } + @Override public void onConnect(ConversationContext context) { // Only the TCP transport supports login. @@ -1099,5 +1104,4 @@ public int getCurLength() { } } - -} +} \ No newline at end of file diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xNettyWrapper.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xNettyWrapper.java index 4c20b1390d7..a2756a6528e 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xNettyWrapper.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xNettyWrapper.java @@ -136,10 +136,19 @@ public ExpectRequestContext expectRequest(Class clazz, Duration timeout) { @Override public void close(ChannelHandlerContext ctx, ChannelPromise promise) throws Exception { + logger.info("close.. context: {}", ctx.name()); super.close(ctx, promise); timeoutManager.stop(); } + @Override + public void channelInactive(ChannelHandlerContext ctx) throws Exception { + logger.info("channelInactive.. context: {}", ctx.name()); + super.channelInactive(ctx); + this.protocolBase.channelInactive(new DefaultConversationContext<>(this::registerHandler, ctx, authentication, passive)); + timeoutManager.stop(); + } + @Override protected void encode(ChannelHandlerContext channelHandlerContext, Object msg, List list) throws Exception { logger.debug("Forwarding request to plc {}", msg); diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xProtocolBase.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xProtocolBase.java index 965fe33da41..bc58b4ac888 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xProtocolBase.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xProtocolBase.java @@ -101,4 +101,6 @@ public CompletableFuture browseWithInterceptor(PlcBrowseReque public abstract void close(ConversationContext context); + public abstract void channelInactive(ConversationContext context); + } diff --git a/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/connection/DefaultNettyPlcConnectionTest.java b/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/connection/DefaultNettyPlcConnectionTest.java index 66d410ef032..fe92f059ce0 100644 --- a/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/connection/DefaultNettyPlcConnectionTest.java +++ b/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/connection/DefaultNettyPlcConnectionTest.java @@ -41,13 +41,14 @@ class DefaultNettyPlcConnectionTest { final GateKeeper connect = new GateKeeper("connect"); final GateKeeper disconnect = new GateKeeper("disconnect"); final GateKeeper close = new GateKeeper("close"); + final GateKeeper channelInactive = new GateKeeper("channelInactive"); @Test void checkInitializationSequence() throws Exception { ChannelFactory channelFactory = new TestChannelFactory(); ProtocolStackConfigurer stackConfigurer = (configuration, pipeline, authentication, passive, listeners) -> { - TestProtocolBase base = new TestProtocolBase(discovery, connect, disconnect, close); + TestProtocolBase base = new TestProtocolBase(discovery, connect, disconnect, close, channelInactive); Plc4xNettyWrapper context = new Plc4xNettyWrapper<>(new NettyHashTimerTimeoutManager(), pipeline, passive, base, authentication, Message.class); pipeline.addLast(context); return base; @@ -153,12 +154,14 @@ static class TestProtocolBase extends Plc4xProtocolBase { private final GateKeeper connect; private final GateKeeper close; private final GateKeeper disconnect; + private final GateKeeper channelInactive; - public TestProtocolBase(GateKeeper discover, GateKeeper connect, GateKeeper disconnect, GateKeeper close) { + public TestProtocolBase(GateKeeper discover, GateKeeper connect, GateKeeper disconnect, GateKeeper close, GateKeeper channelInactive) { this.discover = discover; this.connect = connect; this.close = close; this.disconnect = disconnect; + this.channelInactive =channelInactive; } @Override @@ -210,6 +213,13 @@ private void awaitIn(GateKeeper signal) { throw new RuntimeException(e); } } - } + @Override + public void channelInactive(ConversationContext context) { + logger.info("On ChannelInactive"); + channelInactive.permitEntry(); + awaitIn(channelInactive); + channelInactive.reportExit(); + } + } } \ No newline at end of file diff --git a/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/connection/TestProtocol.java b/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/connection/TestProtocol.java index ed2d7abc98b..ae20e8ce7a2 100644 --- a/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/connection/TestProtocol.java +++ b/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/connection/TestProtocol.java @@ -57,4 +57,9 @@ public void close(ConversationContext context) { context.getChannel().close(); } + @Override + public void channelInactive(ConversationContext context) { + context.getChannel().close(); + } + } From 1580c9ffa0371bbe68b54cc05d80eb358831d037 Mon Sep 17 00:00:00 2001 From: Francesco Date: Wed, 3 Sep 2025 12:14:31 +0200 Subject: [PATCH 2/2] fix log verbosity --- .../java/org/apache/plc4x/java/spi/Plc4xNettyWrapper.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xNettyWrapper.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xNettyWrapper.java index a2756a6528e..9c6e267337c 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xNettyWrapper.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xNettyWrapper.java @@ -136,14 +136,14 @@ public ExpectRequestContext expectRequest(Class clazz, Duration timeout) { @Override public void close(ChannelHandlerContext ctx, ChannelPromise promise) throws Exception { - logger.info("close.. context: {}", ctx.name()); + logger.trace("close.. context: {}", ctx.name()); super.close(ctx, promise); timeoutManager.stop(); } @Override public void channelInactive(ChannelHandlerContext ctx) throws Exception { - logger.info("channelInactive.. context: {}", ctx.name()); + logger.trace("channelInactive.. context: {}", ctx.name()); super.channelInactive(ctx); this.protocolBase.channelInactive(new DefaultConversationContext<>(this::registerHandler, ctx, authentication, passive)); timeoutManager.stop();