From 7b4f0e8f00889de41f1c357e85815df2cc7fe343 Mon Sep 17 00:00:00 2001 From: Anderson Vasconcelos Pires Date: Fri, 27 Feb 2026 14:54:17 -0300 Subject: [PATCH] fix(plc4j/eip): NullPointerException on decodeSingleReadResponse. Instead of throwing an exception, the system will report the response code INTERNAL_ERROR and plcValue will be null. --- .../apache/plc4x/java/eip/base/protocol/EipProtocolLogic.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/base/protocol/EipProtocolLogic.java b/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/base/protocol/EipProtocolLogic.java index 14b26360e72..694c64e153d 100644 --- a/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/base/protocol/EipProtocolLogic.java +++ b/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/base/protocol/EipProtocolLogic.java @@ -811,9 +811,9 @@ private Map> decodeSingleReadResponse(CipServi CipReadResponse resp = (CipReadResponse) p; PlcResponseCode code = decodeResponseCode(resp.getStatus()); PlcValue plcValue = null; - CIPDataTypeCode type = resp.getData().getDataType(); - ByteBuf data = Unpooled.wrappedBuffer(resp.getData().getData()); if (code == PlcResponseCode.OK) { + CIPDataTypeCode type = resp.getData().getDataType(); + ByteBuf data = Unpooled.wrappedBuffer(resp.getData().getData()); plcValue = parsePlcValue((EipTag) tag, data, type); } PlcResponseItem result = new DefaultPlcResponseItem<>(code, plcValue);