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);
                 }
             });

Reply via email to