This is an automated email from the ASF dual-hosted git repository. chrisdutz pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit c1db0652996232dfe964b909e5a822bf58f323d2 Author: Christofer Dutz <[email protected]> AuthorDate: Fri Aug 14 16:37:49 2026 +0200 chore(plc4j/spi): Improved logging on parsing of invalid tags. --- .../plc4x/java/spi/drivers/messages/DefaultPlcReadRequest.java | 8 ++++++++ .../plc4x/java/spi/drivers/messages/DefaultPlcWriteRequest.java | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/plc4j/spi/drivers/src/main/java/org/apache/plc4x/java/spi/drivers/messages/DefaultPlcReadRequest.java b/plc4j/spi/drivers/src/main/java/org/apache/plc4x/java/spi/drivers/messages/DefaultPlcReadRequest.java index 944830a085..6c482b716c 100644 --- a/plc4j/spi/drivers/src/main/java/org/apache/plc4x/java/spi/drivers/messages/DefaultPlcReadRequest.java +++ b/plc4j/spi/drivers/src/main/java/org/apache/plc4x/java/spi/drivers/messages/DefaultPlcReadRequest.java @@ -34,9 +34,13 @@ import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.function.Supplier; import java.util.stream.Collectors; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class DefaultPlcReadRequest implements PlcReadRequest, PlcTagRequest { + private static final Logger LOGGER = LoggerFactory.getLogger(DefaultPlcReadRequest.class); + private final PlcReader reader; private final LinkedHashMap<String, PlcTagItem<PlcTag>> tags; @@ -109,6 +113,10 @@ public class DefaultPlcReadRequest implements PlcReadRequest, PlcTagRequest { PlcTag tag = tagHandler.parseTag(tagAddress); return new DefaultPlcTagItem<>(tag); } catch (Exception e) { + // The tag still takes part in the request, carrying INVALID_ADDRESS. Without + // this log line the user is left with a response code and no way of telling + // which address was rejected or why. + LOGGER.warn("Invalid address '{}' for tag '{}': {}", tagAddress, name, e.getMessage(), e); return new DefaultPlcTagErrorItem<>(PlcResponseCode.INVALID_ADDRESS); } }); diff --git a/plc4j/spi/drivers/src/main/java/org/apache/plc4x/java/spi/drivers/messages/DefaultPlcWriteRequest.java b/plc4j/spi/drivers/src/main/java/org/apache/plc4x/java/spi/drivers/messages/DefaultPlcWriteRequest.java index f52f0e0954..955d5c8a4e 100644 --- a/plc4j/spi/drivers/src/main/java/org/apache/plc4x/java/spi/drivers/messages/DefaultPlcWriteRequest.java +++ b/plc4j/spi/drivers/src/main/java/org/apache/plc4x/java/spi/drivers/messages/DefaultPlcWriteRequest.java @@ -36,9 +36,13 @@ import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.function.Supplier; import java.util.stream.Collectors; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class DefaultPlcWriteRequest implements PlcWriteRequest { + private static final Logger LOGGER = LoggerFactory.getLogger(DefaultPlcWriteRequest.class); + private final PlcWriter writer; private final LinkedHashMap<String, PlcTagValueItem<PlcTag>> tags; @@ -121,9 +125,11 @@ public class DefaultPlcWriteRequest implements PlcWriteRequest { PlcValue plcValue = parsePlcValue(tag, values); return new DefaultPlcTagValueItem<>(tag, plcValue); } catch (Exception e) { + LOGGER.warn("Invalid value for tag '{}' (address '{}'): {}", name, tagAddress, e.getMessage(), e); return new DefaultPlcTagErrorItem<>(PlcResponseCode.INVALID_DATA); } } catch (Exception e) { + LOGGER.warn("Invalid address '{}' for tag '{}': {}", tagAddress, name, e.getMessage(), e); return new DefaultPlcTagErrorItem<>(PlcResponseCode.INVALID_ADDRESS); } }); @@ -140,6 +146,7 @@ public class DefaultPlcWriteRequest implements PlcWriteRequest { PlcValue plcValue = parsePlcValue(tag, values); return new DefaultPlcTagValueItem<>(tag, plcValue); } catch (Exception e) { + LOGGER.warn("Invalid value for tag '{}': {}", name, e.getMessage(), e); return new DefaultPlcTagErrorItem<>(PlcResponseCode.INVALID_DATA); } });
