I'm reading the tag properties in batches using tagManager.readAsync(propertyPaths)
.
The problem is that one of the tag has empty name and the whole readAsync fails because of that with:
java.lang.NullPointerException: null
at com.inductiveautomation.ignition.gateway.tags.model.impl.GatewayTagManagerImpl.lambda$readAsync$9(GatewayTagManagerImpl.java:730)
at java.base/java.util.stream.MatchOps$1MatchSink.accept(Unknown Source)
at java.base/java.util.ArrayList$ArrayListSpliterator.tryAdvance(Unknown Source)
at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(Unknown Source)
at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.base/java.util.stream.ReferencePipeline.allMatch(Unknown Source)
at com.inductiveautomation.ignition.gateway.tags.model.impl.GatewayTagManagerImpl.readAsync(GatewayTagManagerImpl.java:730)
at com.inductiveautomation.ignition.common.tags.model.TagManager.readAsync(TagManager.java:62)
The structure looks like:
"Node 1"
"Node 11"
"" <-- boolean TAG with empty name
"Tag 112"
"Tag 113"
"Tag 114"
We are using Ignition 8.1.16 but it seems the problem is reproducible also on older version like ignition 8.1.2.
Note: I do not know how the tag with empty name was created. I'm not able to create one using the UI.