korni128 opened a new issue, #1593:
URL: https://github.com/apache/plc4x/issues/1593
### What happened?
The PlcConnection is not working propertly in my setup for S7 PLC. Maybe it
is related to Issue 1257.
My test code (the test is not successful).
```
import static org.assertj.core.api.Assertions.assertThat;
import org.apache.plc4x.java.DefaultPlcDriverManager;
import org.apache.plc4x.java.api.PlcConnection;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class BasicConnectionTest {
@Test
void testConnection() throws Exception {
String url = "s7://127.0.0.1:102?remote-rack=0&remote-slot=1";
PlcConnection plcConnection = new
DefaultPlcDriverManager().getConnectionManager().getConnection(url);
assertThat(plcConnection.isConnected()).isTrue();
plcConnection.close();
}
}
```
Apart from that, some requests seem to work properly when the connection is
used afterwards.
Log output produced with test code in Version v0.12.0
```
INFO o.a.p.java.DefaultPlcDriverManager - Instantiating new PLC Driver
Manager with class loader
jdk.internal.loader.ClassLoaders$AppClassLoader@76ed5528
INFO o.a.p.java.DefaultPlcDriverManager - Registering available drivers...
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
s7 (Siemens S7 (Basic))
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
plc4x (PLC4X (Proxy-Protocol))
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
mock (Mock Protocol Implementation)
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
ab-eth (Allen Bradley ETH)
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
ads (Beckhoff TwinCat ADS)
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
bacnet-ip (BACnet/IP)
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
c-bus (Clipsal C-Bus)
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
genericcan (Generic CAN)
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
canopen (CAN open)
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
eip (EthernetIP)
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
logix (Logix CIP)
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
firmata (Firmata)
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
iec-60870-5-104 (IEC 60870-5-104)
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
knxnet-ip (KNXNet/IP)
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
open-protocol (Open-Protocol)
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
modbus-ascii (Modbus ASCII)
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
modbus-rtu (Modbus RTU)
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
modbus-tcp (Modbus TCP)
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
opcua (Opcua)
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
profinet (Profinet)
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
simulated (Simulated PLC4X Datasource)
INFO o.a.p.j.t.tcp.TcpChannelFactory - Configuring Bootstrap with
org.apache.plc4x.java.s7.readwrite.configuration.S7TcpTransportConfiguration@78a287ed
INFO o.a.p.j.s.r.protocol.S7ProtocolLogic - S7 Driver running in ACTIVE
mode.
INFO o.a.p.j.s.r.protocol.S7HMuxImpl - 15:19:00.091903500
userEventTriggered: Multiplexor Event:
org.apache.plc4x.java.spi.events.ConnectEvent@6bc248ed
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
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
INFO o.a.p.j.s.r.protocol.S7HMuxImpl - 15:19:01.185479400
userEventTriggered: Multiplexor Event:
org.apache.plc4x.java.spi.events.ConnectedEvent@23421ec
INFO o.a.p.j.s.r.protocol.S7HMuxImpl - java.util.NoSuchElementException:
watchdog
```
If I try to debug then I run into a timeout but there is also
NullPointerException. But I think that is something else and maybe not
important.
```
INFO o.a.p.j.s.r.protocol.S7ProtocolLogic - S7 Driver running in ACTIVE
mode.
INFO o.a.p.j.s.r.protocol.S7ProtocolLogic - Timeout during Connection
establishing, closing channel...
INFO o.a.p.j.s.r.protocol.S7HMuxImpl - 15:30:51.442180800
userEventTriggered: Multiplexor Event:
org.apache.plc4x.java.spi.events.ConnectEvent@39fdf04b
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: java.lang.NullPointerException:
Cannot invoke "org.apache.plc4x.java.s7.readwrite.S7Message.getParameter()"
because "s7msg" is null
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: java.lang.NullPointerException: Cannot invoke
"org.apache.plc4x.java.s7.readwrite.S7Message.getParameter()" because "s7msg"
is null
at
org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic.decode(S7ProtocolLogic.java:1477)
at
org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic.decode(S7ProtocolLogic.java:1)
at
org.apache.plc4x.java.spi.Plc4xNettyWrapper.decode(Plc4xNettyWrapper.java:190)
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
```
Log output produced with test code in version v0.11.0 (the same test code
works perfectly in version v0.11.0).
```
INFO o.a.p.java.DefaultPlcDriverManager - Instantiating new PLC Driver
Manager with class loader
jdk.internal.loader.ClassLoaders$AppClassLoader@76ed5528
INFO o.a.p.java.DefaultPlcDriverManager - Registering available drivers...
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
s7 (Siemens S7 (Basic))
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
plc4x (PLC4X (Proxy-Protocol))
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
mock (Mock Protocol Implementation)
INFO o.a.p.java.DefaultPlcDriverManager - Registering driver for Protocol
simulated (Simulated PLC4X Datasource)
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=1, 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}
INFO o.a.p.j.s.r.protocol.S7ProtocolLogic - S7 Driver running in ACTIVE
mode.
INFO o.a.p.j.s.r.connection.S7HMuxImpl - 15:13:32.255891
userEventTriggered: S7HMuxImpl#0 Event:
org.apache.plc4x.java.spi.events.ConnectEvent@7da10b5b
INFO o.a.p.j.s.r.connection.S7HMuxImpl - java.util.NoSuchElementException:
watchdog
INFO o.a.p.j.s.r.connection.S7HMuxImpl - 15:13:33.318472100
userEventTriggered: S7HMuxImpl#0 Event:
org.apache.plc4x.java.spi.events.ConnectedEvent@1a5e2b89
INFO o.a.p.j.s.r.connection.S7HMuxImpl - 15:13:33.353959900
userEventTriggered: S7HMuxImpl#0 Event:
org.apache.plc4x.java.spi.events.DisconnectEvent@352e612e
INFO o.a.p.j.s.r.connection.S7HMuxImpl - DisconnectEvent
```
### Version
v0.12.0
### Programming Languages
- [X] plc4j
- [ ] plc4go
- [ ] plc4c
- [ ] plc4net
### Protocols
- [ ] AB-Ethernet
- [ ] ADS /AMS
- [ ] BACnet/IP
- [ ] CANopen
- [ ] DeltaV
- [ ] DF1
- [ ] EtherNet/IP
- [ ] Firmata
- [ ] KNXnet/IP
- [ ] Modbus
- [ ] OPC-UA
- [X] S7
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]