Skip to content

[Bug]: NullPointerException #2394

@JordanFromChina

Description

@JordanFromChina

What happened?

// connected a S1500 PLC and cache it
// create PlcReadRequest instance and cache it
//get PlcReadRequest from cache
//a loop call program below


PlcReadRequest readRequest = cachedRequest.get(...);
PlcReadResponse response = readRequest.execute()
  .get(OpcConfig.synchronized_millisecond * 30, TimeUnit.MILLISECONDS);

Thread.sleep(100);
PlcResponseCode code;
Object value;
for (String fieldName : response.getTagNames()) {
        try {
            code = response.getResponseCode(fieldName);
            if (code == PlcResponseCode.OK) {
                ....
            } else { 
              log.error("field: {} responseCode: {}", fieldName, code);
            }
    }
    catch (InterruptedException e) {
    	throw e;
    }
    catch (Exception e) {
        String msg = e.getMessage();
        log.error(fieldName , e);
}

the logback file logged errors below sometimes

[plc4x-tm-thread-1] i.n.c.e.EmbeddedChannel - More than one exception was raised. Will report only the first one and log others.
java.lang.NullPointerException: Cannot invoke "io.netty.channel.ChannelPromise.setUncancellable()" because "entry.promise" is null
at io.netty.channel.ChannelOutboundBuffer.addFlush(ChannelOutboundBuffer.java:150)
at io.netty.channel.AbstractChannel$AbstractUnsafe.flush(AbstractChannel.java:894)
at io.netty.channel.embedded.EmbeddedChannel$EmbeddedUnsafe$1.flush(EmbeddedChannel.java:894)
at io.netty.channel.DefaultChannelPipeline$HeadContext.flush(DefaultChannelPipeline.java:1372)
at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:921)
at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:907)
at io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:893)
at io.netty.channel.ChannelDuplexHandler.flush(ChannelDuplexHandler.java:127)
at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:923)
at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:941)
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:966)
at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:934)
at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:984)
at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1025)
at org.apache.plc4x.java.spi.Plc4xNettyWrapper$1.sendToWire(Plc4xNettyWrapper.java:100)
at org.apache.plc4x.java.spi.internal.DefaultSendRequestContext.handle(DefaultSendRequestContext.java:108)
at org.apache.plc4x.java.spi.internal.DefaultSendRequestContext.handle(DefaultSendRequestContext.java:1)
at org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic.lambda$42(S7ProtocolLogic.java:1535)
at org.apache.plc4x.java.spi.transaction.RequestTransactionManager$TransactionOperation.run(RequestTransactionManager.java:225)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)

Version

v0.13.1

Programming Languages

  • plc4c
  • plc4go
  • plc4j
  • plc4net
  • plc4py

Protocols

  • AB-Ethernet
  • ADS /AMS
  • BACnet/IP
  • C-Bus
  • CANopen
  • EtherNet/IP
  • Firmata
  • IEC-69870
  • KNXnet/IP
  • Modbus
  • OPC-UA
  • Profinet
  • S7
  • S7-light

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions