korni128 commented on issue #1593: URL: https://github.com/apache/plc4x/issues/1593#issuecomment-2100578105
Hello César José García León, thank you for looking into the problem and responding. We have three real S7 PLCs in our test lab:: S7-1200, S7-1515, S7-1516 For testing purposes, I connect to the PLC via an SSH tunnel, but I also run the code without an SSH connection next to the PLC. I have improved my code and logging a little bit to show you more details. I have tried out the connection with all three SPS via SSH and next to the SPS on a remote computer. Everything runs perfectly in version 0.11.0 but if I change the version to 0.12.0 the exception occurs as described before. You can find more details in the log output below. Here is my current test code: ``` import org.apache.plc4x.java.api.PlcConnection; import org.apache.plc4x.java.api.PlcDriverManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TestConnectionWithPLC4X2 { private static final Logger logger = LoggerFactory.getLogger(TestConnectionWithPLC4X2.class); public static void main(String[] args) throws Exception { String urlS71515 = "s7://192.168.0.111:102?remote-rack:0&remote-slot:1"; // S7-1515 (Lab) String urlS71200 = "s7://192.168.0.190:102?remote-rack:0&remote-slot:1"; // S7-1200 (Error_FBs) String urlS71516 = "s7://192.168.0.186:102?remote-rack:0&remote-slot:1"; // S7-1516 (Simulation) String executionEnvironment = System.getenv("EXEC_ENVIRONMENT"); if ("local".equals(executionEnvironment)) { urlS71515 = "s7://127.0.0.1:1515?remote-rack:0&remote-slot:1"; // S7-1515 (Lab) urlS71200 = "s7://127.0.0.1:1200?remote-rack:0&remote-slot:1"; // S7-1200 (Error_FBs) urlS71516 = "s7://127.0.0.1:1516?remote-rack:0&remote-slot:1"; // S7-1516 (Simulation) } logger.info(""); logger.info("#####################################################################"); logger.info("Test connection with S7-1515"); logger.info("#####################################################################"); try (PlcConnection connection = PlcDriverManager.getDefault().getConnectionManager().getConnection(urlS71515)) { logger.info("Connection status with S7-1515: {}", connection.isConnected() ? "CONNECTED" : "DISCONNECTED"); } logger.info("Connection Closed"); logger.info(""); logger.info("#####################################################################"); logger.info("Test connection with S7-1200"); logger.info("#####################################################################"); try (PlcConnection connection = PlcDriverManager.getDefault().getConnectionManager().getConnection(urlS71200)) { logger.info("Connection status with S7-1200: {}", connection.isConnected() ? "CONNECTED" : "DISCONNECTED"); } logger.info("Connection Closed"); logger.info(""); logger.info("#####################################################################"); logger.info("Test connection with S7-1516"); logger.info("#####################################################################"); try (PlcConnection connection = PlcDriverManager.getDefault().getConnectionManager().getConnection(urlS71516)) { logger.info("Connection status with S7-1516: {}", connection.isConnected() ? "CONNECTED" : "DISCONNECTED"); } logger.info("Connection Closed"); } } ``` Log output with version 0.11.0 => works and looks good ``` [main] INFO TestConnectionWithPLC4X - ##################################################################### [main] INFO TestConnectionWithPLC4X - Test connection with S7-1515 ##################################################################### [main] INFO o.a.p.java.DefaultPlcDriverManager - Instantiating new PLC Driver Manager with class loader jdk.internal.loader.ClassLoaders$AppClassLoader@76ed5528 [main] INFO o.a.p.java.DefaultPlcDriverManager - Registering available drivers... [main] INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol s7 (Siemens S7 (Basic)) [main] INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol plc4x (PLC4X (Proxy-Protocol)) [main] INFO o.a.p.j.t.tcp.TcpChannelFactory - Configuring Bootstrap with Configuration{local-rack=1, local-slot=1, local-tsap=0, remote-rack=0, remote-slot=0, remote-rack2=0, remote-slot2=0, remote-tsap=0, pduSize=1024, maxAmqCaller=8, maxAmqCallee=8, controllerType=null, readTimeOut=8, ping=false, pingTime=-1, retryTime=4} [main] INFO o.a.p.j.s.r.protocol.S7ProtocolLogic - S7 Driver running in ACTIVE mode. [main] INFO o.a.p.j.s.r.connection.S7HMuxImpl - 15:09:00.889822200 userEventTriggered: S7HMuxImpl#0 Event: org.apache.plc4x.java.spi.events.ConnectEvent@524f3b3a [main] INFO o.a.p.j.s.r.connection.S7HMuxImpl - java.util.NoSuchElementException: watchdog [main] INFO TestConnectionWithPLC4X - Connection status with S7-1515: CONNECTED [nioEventLoopGroup-2-1] INFO o.a.p.j.s.r.connection.S7HMuxImpl - 15:09:01.906797500 userEventTriggered: S7HMuxImpl#0 Event: org.apache.plc4x.java.spi.events.ConnectedEvent@22dc3224 [main] INFO o.a.p.j.s.r.connection.S7HMuxImpl - 15:09:01.910999800 userEventTriggered: S7HMuxImpl#0 Event: org.apache.plc4x.java.spi.events.DisconnectEvent@539d019 [main] INFO o.a.p.j.s.r.connection.S7HMuxImpl - DisconnectEvent [main] INFO TestConnectionWithPLC4X - Connection Closed [main] INFO TestConnectionWithPLC4X - [main] INFO TestConnectionWithPLC4X - ##################################################################### [main] INFO TestConnectionWithPLC4X - Test connection with S7-1200 [main] INFO TestConnectionWithPLC4X - ##################################################################### [main] INFO o.a.p.java.DefaultPlcDriverManager - Instantiating new PLC Driver Manager with class loader jdk.internal.loader.ClassLoaders$AppClassLoader@76ed5528 [main] INFO o.a.p.java.DefaultPlcDriverManager - Registering available drivers... [main] INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol s7 (Siemens S7 (Basic)) [main] INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol plc4x (PLC4X (Proxy-Protocol)) [main] INFO o.a.p.j.t.tcp.TcpChannelFactory - Configuring Bootstrap with Configuration{local-rack=1, local-slot=1, local-tsap=0, remote-rack=0, remote-slot=0, remote-rack2=0, remote-slot2=0, remote-tsap=0, pduSize=1024, maxAmqCaller=8, maxAmqCallee=8, controllerType=null, readTimeOut=8, ping=false, pingTime=-1, retryTime=4} [main] INFO o.a.p.j.s.r.protocol.S7ProtocolLogic - S7 Driver running in ACTIVE mode. [main] INFO o.a.p.j.s.r.connection.S7HMuxImpl - 15:09:01.946659400 userEventTriggered: S7HMuxImpl#0 Event: org.apache.plc4x.java.spi.events.ConnectEvent@30af5b6b [main] INFO o.a.p.j.s.r.connection.S7HMuxImpl - java.util.NoSuchElementException: watchdog [main] INFO TestConnectionWithPLC4X - Connection status with S7-1200: CONNECTED [nioEventLoopGroup-3-1] INFO o.a.p.j.s.r.connection.S7HMuxImpl - 15:09:03.402679 userEventTriggered: S7HMuxImpl#0 Event: org.apache.plc4x.java.spi.events.ConnectedEvent@5888d5b [main] INFO o.a.p.j.s.r.connection.S7HMuxImpl - 15:09:03.404680500 userEventTriggered: S7HMuxImpl#0 Event: org.apache.plc4x.java.spi.events.DisconnectEvent@19835e64 [main] INFO o.a.p.j.s.r.connection.S7HMuxImpl - DisconnectEvent [main] INFO TestConnectionWithPLC4X - Connection Closed [main] INFO TestConnectionWithPLC4X - [main] INFO TestConnectionWithPLC4X - ##################################################################### [main] INFO TestConnectionWithPLC4X - Test connection with S7-1516 [main] INFO TestConnectionWithPLC4X - ##################################################################### [main] INFO o.a.p.java.DefaultPlcDriverManager - Instantiating new PLC Driver Manager with class loader jdk.internal.loader.ClassLoaders$AppClassLoader@76ed5528 [main] INFO o.a.p.java.DefaultPlcDriverManager - Registering available drivers... [main] INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol s7 (Siemens S7 (Basic)) [main] INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol plc4x (PLC4X (Proxy-Protocol)) [main] INFO o.a.p.j.t.tcp.TcpChannelFactory - Configuring Bootstrap with Configuration{local-rack=1, local-slot=1, local-tsap=0, remote-rack=0, remote-slot=0, remote-rack2=0, remote-slot2=0, remote-tsap=0, pduSize=1024, maxAmqCaller=8, maxAmqCallee=8, controllerType=null, readTimeOut=8, ping=false, pingTime=-1, retryTime=4} [main] INFO o.a.p.j.s.r.protocol.S7ProtocolLogic - S7 Driver running in ACTIVE mode. [main] INFO o.a.p.j.s.r.connection.S7HMuxImpl - 15:09:03.446152400 userEventTriggered: S7HMuxImpl#0 Event: org.apache.plc4x.java.spi.events.ConnectEvent@6a55299e [main] INFO o.a.p.j.s.r.connection.S7HMuxImpl - java.util.NoSuchElementException: watchdog [nioEventLoopGroup-4-1] INFO o.a.p.j.s.r.connection.S7HMuxImpl - 15:09:04.513452200 userEventTriggered: S7HMuxImpl#0 Event: org.apache.plc4x.java.spi.events.ConnectedEvent@19a070f1 [main] INFO TestConnectionWithPLC4X - Connection status with S7-1516: CONNECTED [main] INFO o.a.p.j.s.r.connection.S7HMuxImpl - 15:09:04.514457800 userEventTriggered: S7HMuxImpl#0 Event: org.apache.plc4x.java.spi.events.DisconnectEvent@2f1de2d6 [main] INFO o.a.p.j.s.r.connection.S7HMuxImpl - DisconnectEvent [main] INFO TestConnectionWithPLC4X - Connection Closed ``` Log output with version 0.12.0 (I have removed the content of DEBUGDOOM because I don't know what is in there) ``` [main] INFO TestConnectionWithPLC4X - [main] INFO TestConnectionWithPLC4X - ##################################################################### [main] INFO TestConnectionWithPLC4X - Test connection with S7-1515 [main] INFO TestConnectionWithPLC4X - ##################################################################### [main] INFO o.a.p.java.DefaultPlcDriverManager - Instantiating new PLC Driver Manager with class loader jdk.internal.loader.ClassLoaders$AppClassLoader@76ed5528 [main] INFO o.a.p.java.DefaultPlcDriverManager - Registering available drivers... [main] INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol s7 (Siemens S7 (Basic)) [main] INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol plc4x (PLC4X (Proxy-Protocol)) [main] INFO o.a.p.j.t.tcp.TcpChannelFactory - Configuring Bootstrap with org.apache.plc4x.java.s7.readwrite.configuration.S7TcpTransportConfiguration@34129c78 [main] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] USER_EVENT: org.apache.plc4x.java.spi.events.ConnectEvent@11d8ae8b [main] INFO o.a.p.j.s.r.protocol.S7ProtocolLogic - S7 Driver running in ACTIVE mode. [main] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] WRITE: 22B +-------------------------------------------------+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | +--------+-------------------------------------------------+----------------+ |00000000| ... +--------+-------------------------------------------------+----------------+ [main] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] FLUSH [main] INFO o.a.p.j.s.r.protocol.S7HMuxImpl - 15:07:55.101204500 userEventTriggered: Multiplexor Event: org.apache.plc4x.java.spi.events.ConnectEvent@11d8ae8b [nioEventLoopGroup-2-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] READ: 22B +-------------------------------------------------+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | +--------+-------------------------------------------------+----------------+ |00000000| ... +--------+-------------------------------------------------+----------------+ [nioEventLoopGroup-2-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] WRITE: 25B +-------------------------------------------------+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | +--------+-------------------------------------------------+----------------+ |00000000| ... +--------+-------------------------------------------------+----------------+ [nioEventLoopGroup-2-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] FLUSH [nioEventLoopGroup-2-1] WARN i.n.channel.embedded.EmbeddedChannel - More than one exception was raised. Will report only the first one and log others. io.netty.handler.codec.DecoderException: io.netty.handler.codec.EncoderException: MessageToMessageCodec$1 must produce at least one message. at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:98) at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) at io.netty.handler.codec.ByteToMessageCodec.channelRead(ByteToMessageCodec.java:103) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:280) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl.decode(S7HMuxImpl.java:145) at org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl.decode(S7HMuxImpl.java:1) at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: io.netty.handler.codec.EncoderException: MessageToMessageCodec$1 must produce at least one message. at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:99) at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.logging.LoggingHandler.write(LoggingHandler.java:288) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:113) at io.netty.handler.codec.ByteToMessageCodec.write(ByteToMessageCodec.java:108) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113) at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113) at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:956) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:982) at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:950) at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:1000) at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1025) at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:306) at org.apache.plc4x.java.spi.internal.DefaultConversationContext.sendToWire(DefaultConversationContext.java:70) at org.apache.plc4x.java.spi.internal.DefaultSendRequestContext.handle(DefaultSendRequestContext.java:107) at org.apache.plc4x.java.spi.internal.DefaultSendRequestContext.handle(DefaultSendRequestContext.java:1) at org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic.lambda$3(S7ProtocolLogic.java:194) at java.base/java.util.function.Consumer.lambda$andThen$0(Consumer.java:65) at org.apache.plc4x.java.spi.Plc4xNettyWrapper.decode(Plc4xNettyWrapper.java:183) at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) ... 40 common frames omitted [nioEventLoopGroup-2-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] READ: 27B +-------------------------------------------------+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | +--------+-------------------------------------------------+----------------+ |00000000| ... +--------+-------------------------------------------------+----------------+ [nioEventLoopGroup-2-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] WRITE: 33B +-------------------------------------------------+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | +--------+-------------------------------------------------+----------------+ |00000000| ... +--------+-------------------------------------------------+----------------+ [nioEventLoopGroup-2-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] FLUSH [nioEventLoopGroup-2-1] WARN i.n.channel.embedded.EmbeddedChannel - More than one exception was raised. Will report only the first one and log others. io.netty.handler.codec.DecoderException: io.netty.handler.codec.EncoderException: MessageToMessageCodec$1 must produce at least one message. at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:98) at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) at io.netty.handler.codec.ByteToMessageCodec.channelRead(ByteToMessageCodec.java:103) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:280) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl.decode(S7HMuxImpl.java:145) at org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl.decode(S7HMuxImpl.java:1) at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: io.netty.handler.codec.EncoderException: MessageToMessageCodec$1 must produce at least one message. at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:99) at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.logging.LoggingHandler.write(LoggingHandler.java:288) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:113) at io.netty.handler.codec.ByteToMessageCodec.write(ByteToMessageCodec.java:108) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113) at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113) at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:956) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:982) at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:950) at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:1000) at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1025) at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:306) at org.apache.plc4x.java.spi.internal.DefaultConversationContext.sendToWire(DefaultConversationContext.java:70) at org.apache.plc4x.java.spi.internal.DefaultSendRequestContext.handle(DefaultSendRequestContext.java:107) at org.apache.plc4x.java.spi.internal.DefaultSendRequestContext.handle(DefaultSendRequestContext.java:1) at org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic.lambda$8(S7ProtocolLogic.java:231) at java.base/java.util.function.Consumer.lambda$andThen$0(Consumer.java:65) at org.apache.plc4x.java.spi.Plc4xNettyWrapper.decode(Plc4xNettyWrapper.java:183) at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) ... 40 common frames omitted [nioEventLoopGroup-2-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] READ: 967B +-------------------------------------------------+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | +--------+-------------------------------------------------+----------------+ |00000000| ... +--------+-------------------------------------------------+----------------+ [nioEventLoopGroup-2-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] USER_EVENT: org.apache.plc4x.java.spi.events.ConnectedEvent@7209f3cd [main] INFO TestConnectionWithPLC4X - Connection status with S7-1515: DISCONNECTED [nioEventLoopGroup-2-1] INFO o.a.p.j.s.r.protocol.S7HMuxImpl - 15:07:56.076771100 userEventTriggered: Multiplexor Event: org.apache.plc4x.java.spi.events.ConnectedEvent@7209f3cd [main] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] USER_EVENT: org.apache.plc4x.java.spi.events.DisconnectEvent@6dab9b6d [nioEventLoopGroup-2-1] INFO o.a.p.j.s.r.protocol.S7HMuxImpl - java.util.NoSuchElementException: watchdog [main] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] CLOSE [main] DEBUGDOOM - [id: 0xembedded, L:embedded ! R:embedded] INACTIVE [main] DEBUGDOOM - [id: 0xembedded, L:embedded ! R:embedded] UNREGISTERED [main] INFO o.a.p.j.s.r.protocol.S7HMuxImpl - Unregistered of channel: PRIMARY [main] INFO o.a.p.j.s.r.protocol.S7HMuxImpl - 15:07:56.079778400 userEventTriggered: Multiplexor Event: org.apache.plc4x.java.spi.events.DisconnectEvent@6dab9b6d [main] INFO o.a.p.j.s.r.protocol.S7HMuxImpl - DisconnectEvent [main] INFO TestConnectionWithPLC4X - Connection Closed [main] INFO TestConnectionWithPLC4X - [main] INFO TestConnectionWithPLC4X - ##################################################################### [main] INFO TestConnectionWithPLC4X - Test connection with S7-1200 [main] INFO TestConnectionWithPLC4X - ##################################################################### [main] INFO o.a.p.java.DefaultPlcDriverManager - Instantiating new PLC Driver Manager with class loader jdk.internal.loader.ClassLoaders$AppClassLoader@76ed5528 [main] INFO o.a.p.java.DefaultPlcDriverManager - Registering available drivers... [main] INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol s7 (Siemens S7 (Basic)) [main] INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol plc4x (PLC4X (Proxy-Protocol)) [plc4x-evt-dispatcher-thread-1] INFO o.a.p.j.s.r.p.S7ProtocolEventLogic - EventDispatcher Bye! [main] INFO o.a.p.j.t.tcp.TcpChannelFactory - Configuring Bootstrap with org.apache.plc4x.java.s7.readwrite.configuration.S7TcpTransportConfiguration@53fd0d10 [main] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] USER_EVENT: org.apache.plc4x.java.spi.events.ConnectEvent@4ce1d6d0 [main] INFO o.a.p.j.s.r.protocol.S7ProtocolLogic - S7 Driver running in ACTIVE mode. [main] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] WRITE: 22B +-------------------------------------------------+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | +--------+-------------------------------------------------+----------------+ |00000000| ... +--------+-------------------------------------------------+----------------+ [main] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] FLUSH [main] INFO o.a.p.j.s.r.protocol.S7HMuxImpl - 15:07:56.111357300 userEventTriggered: Multiplexor Event: org.apache.plc4x.java.spi.events.ConnectEvent@4ce1d6d0 [plc4x-evt-processor-thread-1] INFO o.a.p.j.s.r.p.S7ProtocolEventLogic - ObjectProcessor Bye! [nioEventLoopGroup-3-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] READ: 22B +-------------------------------------------------+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | +--------+-------------------------------------------------+----------------+ |00000000| ... +--------+-------------------------------------------------+----------------+ [nioEventLoopGroup-3-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] WRITE: 25B +-------------------------------------------------+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | +--------+-------------------------------------------------+----------------+ |00000000| ... +--------+-------------------------------------------------+----------------+ [nioEventLoopGroup-3-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] FLUSH [nioEventLoopGroup-3-1] WARN i.n.channel.embedded.EmbeddedChannel - More than one exception was raised. Will report only the first one and log others. io.netty.handler.codec.DecoderException: io.netty.handler.codec.EncoderException: MessageToMessageCodec$1 must produce at least one message. at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:98) at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) at io.netty.handler.codec.ByteToMessageCodec.channelRead(ByteToMessageCodec.java:103) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:280) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl.decode(S7HMuxImpl.java:145) at org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl.decode(S7HMuxImpl.java:1) at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: io.netty.handler.codec.EncoderException: MessageToMessageCodec$1 must produce at least one message. at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:99) at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.logging.LoggingHandler.write(LoggingHandler.java:288) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:113) at io.netty.handler.codec.ByteToMessageCodec.write(ByteToMessageCodec.java:108) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113) at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113) at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:956) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:982) at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:950) at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:1000) at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1025) at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:306) at org.apache.plc4x.java.spi.internal.DefaultConversationContext.sendToWire(DefaultConversationContext.java:70) at org.apache.plc4x.java.spi.internal.DefaultSendRequestContext.handle(DefaultSendRequestContext.java:107) at org.apache.plc4x.java.spi.internal.DefaultSendRequestContext.handle(DefaultSendRequestContext.java:1) at org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic.lambda$3(S7ProtocolLogic.java:194) at java.base/java.util.function.Consumer.lambda$andThen$0(Consumer.java:65) at org.apache.plc4x.java.spi.Plc4xNettyWrapper.decode(Plc4xNettyWrapper.java:183) at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) ... 40 common frames omitted [nioEventLoopGroup-3-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] READ: 27B +-------------------------------------------------+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | +--------+-------------------------------------------------+----------------+ |00000000| ... +--------+-------------------------------------------------+----------------+ [nioEventLoopGroup-3-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] WRITE: 33B +-------------------------------------------------+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | +--------+-------------------------------------------------+----------------+ |00000000| ... +--------+-------------------------------------------------+----------------+ [nioEventLoopGroup-3-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] FLUSH [nioEventLoopGroup-3-1] WARN i.n.channel.embedded.EmbeddedChannel - More than one exception was raised. Will report only the first one and log others. io.netty.handler.codec.DecoderException: io.netty.handler.codec.EncoderException: MessageToMessageCodec$1 must produce at least one message. at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:98) at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) at io.netty.handler.codec.ByteToMessageCodec.channelRead(ByteToMessageCodec.java:103) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:280) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl.decode(S7HMuxImpl.java:145) at org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl.decode(S7HMuxImpl.java:1) at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: io.netty.handler.codec.EncoderException: MessageToMessageCodec$1 must produce at least one message. at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:99) at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.logging.LoggingHandler.write(LoggingHandler.java:288) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:113) at io.netty.handler.codec.ByteToMessageCodec.write(ByteToMessageCodec.java:108) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113) at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113) at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:956) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:982) at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:950) at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:1000) at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1025) at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:306) at org.apache.plc4x.java.spi.internal.DefaultConversationContext.sendToWire(DefaultConversationContext.java:70) at org.apache.plc4x.java.spi.internal.DefaultSendRequestContext.handle(DefaultSendRequestContext.java:107) at org.apache.plc4x.java.spi.internal.DefaultSendRequestContext.handle(DefaultSendRequestContext.java:1) at org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic.lambda$8(S7ProtocolLogic.java:231) at java.base/java.util.function.Consumer.lambda$andThen$0(Consumer.java:65) at org.apache.plc4x.java.spi.Plc4xNettyWrapper.decode(Plc4xNettyWrapper.java:183) at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) ... 40 common frames omitted [nioEventLoopGroup-3-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] READ: 247B +-------------------------------------------------+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | +--------+-------------------------------------------------+----------------+ |00000000| ... +--------+-------------------------------------------------+----------------+ [nioEventLoopGroup-3-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] USER_EVENT: org.apache.plc4x.java.spi.events.ConnectedEvent@10b971b9 [nioEventLoopGroup-3-1] INFO o.a.p.j.s.r.protocol.S7HMuxImpl - 15:07:57.275383900 userEventTriggered: Multiplexor Event: org.apache.plc4x.java.spi.events.ConnectedEvent@10b971b9 [main] INFO TestConnectionWithPLC4X - Connection status with S7-1200: DISCONNECTED [nioEventLoopGroup-3-1] INFO o.a.p.j.s.r.protocol.S7HMuxImpl - java.util.NoSuchElementException: watchdog [main] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] USER_EVENT: org.apache.plc4x.java.spi.events.DisconnectEvent@7b94089b [main] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] CLOSE [main] DEBUGDOOM - [id: 0xembedded, L:embedded ! R:embedded] INACTIVE [main] DEBUGDOOM - [id: 0xembedded, L:embedded ! R:embedded] UNREGISTERED [main] INFO o.a.p.j.s.r.protocol.S7HMuxImpl - Unregistered of channel: PRIMARY [main] INFO o.a.p.j.s.r.protocol.S7HMuxImpl - 15:07:57.277050600 userEventTriggered: Multiplexor Event: org.apache.plc4x.java.spi.events.DisconnectEvent@7b94089b [main] INFO o.a.p.j.s.r.protocol.S7HMuxImpl - DisconnectEvent [main] INFO TestConnectionWithPLC4X - Connection Closed [main] INFO TestConnectionWithPLC4X - [main] INFO TestConnectionWithPLC4X - ##################################################################### [main] INFO TestConnectionWithPLC4X - Test connection with S7-1516 [main] INFO TestConnectionWithPLC4X - ##################################################################### [main] INFO o.a.p.java.DefaultPlcDriverManager - Instantiating new PLC Driver Manager with class loader jdk.internal.loader.ClassLoaders$AppClassLoader@76ed5528 [main] INFO o.a.p.java.DefaultPlcDriverManager - Registering available drivers... [main] INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol s7 (Siemens S7 (Basic)) [main] INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol plc4x (PLC4X (Proxy-Protocol)) [plc4x-evt-processor-thread-1] INFO o.a.p.j.s.r.p.S7ProtocolEventLogic - ObjectProcessor Bye! [main] INFO o.a.p.j.t.tcp.TcpChannelFactory - Configuring Bootstrap with org.apache.plc4x.java.s7.readwrite.configuration.S7TcpTransportConfiguration@53dbe163 [main] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] USER_EVENT: org.apache.plc4x.java.spi.events.ConnectEvent@34a875b3 [main] INFO o.a.p.j.s.r.protocol.S7ProtocolLogic - S7 Driver running in ACTIVE mode. [main] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] WRITE: 22B +-------------------------------------------------+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | +--------+-------------------------------------------------+----------------+ |00000000| ... +--------+-------------------------------------------------+----------------+ [main] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] FLUSH [main] INFO o.a.p.j.s.r.protocol.S7HMuxImpl - 15:07:57.323779200 userEventTriggered: Multiplexor Event: org.apache.plc4x.java.spi.events.ConnectEvent@34a875b3 [plc4x-evt-dispatcher-thread-1] INFO o.a.p.j.s.r.p.S7ProtocolEventLogic - EventDispatcher Bye! [nioEventLoopGroup-4-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] READ: 22B +-------------------------------------------------+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | +--------+-------------------------------------------------+----------------+ |00000000| ... +--------+-------------------------------------------------+----------------+ [nioEventLoopGroup-4-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] WRITE: 25B +-------------------------------------------------+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | +--------+-------------------------------------------------+----------------+ |00000000| .... +--------+-------------------------------------------------+----------------+ [nioEventLoopGroup-4-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] FLUSH [nioEventLoopGroup-4-1] WARN i.n.channel.embedded.EmbeddedChannel - More than one exception was raised. Will report only the first one and log others. io.netty.handler.codec.DecoderException: io.netty.handler.codec.EncoderException: MessageToMessageCodec$1 must produce at least one message. at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:98) at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) at io.netty.handler.codec.ByteToMessageCodec.channelRead(ByteToMessageCodec.java:103) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:280) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl.decode(S7HMuxImpl.java:145) at org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl.decode(S7HMuxImpl.java:1) at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: io.netty.handler.codec.EncoderException: MessageToMessageCodec$1 must produce at least one message. at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:99) at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.logging.LoggingHandler.write(LoggingHandler.java:288) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:113) at io.netty.handler.codec.ByteToMessageCodec.write(ByteToMessageCodec.java:108) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113) at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113) at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:956) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:982) at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:950) at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:1000) at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1025) at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:306) at org.apache.plc4x.java.spi.internal.DefaultConversationContext.sendToWire(DefaultConversationContext.java:70) at org.apache.plc4x.java.spi.internal.DefaultSendRequestContext.handle(DefaultSendRequestContext.java:107) at org.apache.plc4x.java.spi.internal.DefaultSendRequestContext.handle(DefaultSendRequestContext.java:1) at org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic.lambda$3(S7ProtocolLogic.java:194) at java.base/java.util.function.Consumer.lambda$andThen$0(Consumer.java:65) at org.apache.plc4x.java.spi.Plc4xNettyWrapper.decode(Plc4xNettyWrapper.java:183) at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) ... 40 common frames omitted [nioEventLoopGroup-4-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] READ: 27B +-------------------------------------------------+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | +--------+-------------------------------------------------+----------------+ |00000000| .......... +--------+-------------------------------------------------+----------------+ [nioEventLoopGroup-4-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] WRITE: 33B +-------------------------------------------------+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | +--------+-------------------------------------------------+----------------+ |00000000| ..... +--------+-------------------------------------------------+----------------+ [nioEventLoopGroup-4-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] FLUSH [nioEventLoopGroup-4-1] WARN i.n.channel.embedded.EmbeddedChannel - More than one exception was raised. Will report only the first one and log others. io.netty.handler.codec.DecoderException: io.netty.handler.codec.EncoderException: MessageToMessageCodec$1 must produce at least one message. at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:98) at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) at io.netty.handler.codec.ByteToMessageCodec.channelRead(ByteToMessageCodec.java:103) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:280) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl.decode(S7HMuxImpl.java:145) at org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl.decode(S7HMuxImpl.java:1) at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: io.netty.handler.codec.EncoderException: MessageToMessageCodec$1 must produce at least one message. at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:99) at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.logging.LoggingHandler.write(LoggingHandler.java:288) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:113) at io.netty.handler.codec.ByteToMessageCodec.write(ByteToMessageCodec.java:108) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113) at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868) at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113) at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:956) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:982) at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:950) at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:1000) at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1025) at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:306) at org.apache.plc4x.java.spi.internal.DefaultConversationContext.sendToWire(DefaultConversationContext.java:70) at org.apache.plc4x.java.spi.internal.DefaultSendRequestContext.handle(DefaultSendRequestContext.java:107) at org.apache.plc4x.java.spi.internal.DefaultSendRequestContext.handle(DefaultSendRequestContext.java:1) at org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic.lambda$8(S7ProtocolLogic.java:231) at java.base/java.util.function.Consumer.lambda$andThen$0(Consumer.java:65) at org.apache.plc4x.java.spi.Plc4xNettyWrapper.decode(Plc4xNettyWrapper.java:183) at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) ... 40 common frames omitted [nioEventLoopGroup-4-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] READ: 967B +-------------------------------------------------+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | +--------+-------------------------------------------------+----------------+ |00000000| .............. [nioEventLoopGroup-4-1] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] USER_EVENT: org.apache.plc4x.java.spi.events.ConnectedEvent@4ec2b1c8 [nioEventLoopGroup-4-1] INFO o.a.p.j.s.r.protocol.S7HMuxImpl - 15:07:58.400353500 userEventTriggered: Multiplexor Event: org.apache.plc4x.java.spi.events.ConnectedEvent@4ec2b1c8 [main] INFO TestConnectionWithPLC4X - Connection status with S7-1516: DISCONNECTED [nioEventLoopGroup-4-1] INFO o.a.p.j.s.r.protocol.S7HMuxImpl - java.util.NoSuchElementException: watchdog [main] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] USER_EVENT: org.apache.plc4x.java.spi.events.DisconnectEvent@6dee4f1b [main] DEBUGDOOM - [id: 0xembedded, L:embedded - R:embedded] CLOSE [main] DEBUGDOOM - [id: 0xembedded, L:embedded ! R:embedded] INACTIVE [main] DEBUGDOOM - [id: 0xembedded, L:embedded ! R:embedded] UNREGISTERED [main] INFO o.a.p.j.s.r.protocol.S7HMuxImpl - Unregistered of channel: PRIMARY [main] INFO o.a.p.j.s.r.protocol.S7HMuxImpl - 15:07:58.400353500 userEventTriggered: Multiplexor Event: org.apache.plc4x.java.spi.events.DisconnectEvent@6dee4f1b [main] INFO o.a.p.j.s.r.protocol.S7HMuxImpl - DisconnectEvent [main] INFO TestConnectionWithPLC4X - Connection Closed [plc4x-evt-processor-thread-1] INFO o.a.p.j.s.r.p.S7ProtocolEventLogic - ObjectProcessor Bye! [plc4x-evt-dispatcher-thread-1] INFO o.a.p.j.s.r.p.S7ProtocolEventLogic - EventDispatcher Bye! ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@plc4x.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org