From 8846a921377fb8b3d74f3962fad5608f98f70d9c Mon Sep 17 00:00:00 2001 From: gwen-soleil <gwenaelle.abeille@gmail.com> Date: Mon, 27 Sep 2021 17:03:28 +0200 Subject: [PATCH] fix regression: dynamic attributes were not created --- .../snapextractor/SnapDynamicAttribute.java | 16 ++++++++-------- .../server/snapextractor/SnapExtractor.java | 7 ++++--- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/snapextractor/src/main/java/org/tango/server/snapextractor/SnapDynamicAttribute.java b/snapextractor/src/main/java/org/tango/server/snapextractor/SnapDynamicAttribute.java index 5c97abd..dd9d41f 100644 --- a/snapextractor/src/main/java/org/tango/server/snapextractor/SnapDynamicAttribute.java +++ b/snapextractor/src/main/java/org/tango/server/snapextractor/SnapDynamicAttribute.java @@ -1,7 +1,10 @@ package org.tango.server.snapextractor; -import java.lang.reflect.Array; - +import fr.esrf.Tango.AttrDataFormat; +import fr.esrf.Tango.AttrWriteType; +import fr.esrf.Tango.DevFailed; +import fr.esrf.TangoDs.TimedAttrData; +import fr.soleil.archiving.common.api.tools.DbData; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.tango.server.StateMachineBehavior; @@ -11,17 +14,13 @@ import org.tango.server.attribute.AttributeValue; import org.tango.server.attribute.IAttributeBehavior; import org.tango.server.idl.TangoIDLUtil; -import fr.esrf.Tango.AttrDataFormat; -import fr.esrf.Tango.AttrWriteType; -import fr.esrf.Tango.DevFailed; -import fr.esrf.TangoDs.TimedAttrData; -import fr.soleil.archiving.common.api.tools.DbData; +import java.lang.reflect.Array; public class SnapDynamicAttribute implements IAttributeBehavior { + final TimedAttrData[] timedAttrDatas; private final Logger logger = LoggerFactory.getLogger(SnapDynamicAttribute.class); private final AttributeConfiguration config = new AttributeConfiguration(); - final TimedAttrData[] timedAttrDatas; private final AttributeValue readValue; public SnapDynamicAttribute(final String name, final DbData dbData) throws DevFailed { @@ -31,6 +30,7 @@ public class SnapDynamicAttribute implements IAttributeBehavior { final AttributePropertiesImpl props = new AttributePropertiesImpl(); props.setLabel(dbData.getName()); config.setAttributeProperties(props); + logger.debug("create attribute {}", config); timedAttrDatas = dbData.getDataAsTimedAttrData(); final TimedAttrData timeData = timedAttrDatas[0]; diff --git a/snapextractor/src/main/java/org/tango/server/snapextractor/SnapExtractor.java b/snapextractor/src/main/java/org/tango/server/snapextractor/SnapExtractor.java index dcfe2d3..cb24f1e 100644 --- a/snapextractor/src/main/java/org/tango/server/snapextractor/SnapExtractor.java +++ b/snapextractor/src/main/java/org/tango/server/snapextractor/SnapExtractor.java @@ -660,8 +660,10 @@ public class SnapExtractor implements DBExtractionConst { final String writeName = names[1]; int writable = -1; for (DbData dbData : dbDatas) { - if ((dbData != null) && (dbData.getDataType() == TangoConst.Tango_DEV_STATE)) { - dbData.setDataType(TangoConst.Tango_DEV_LONG); + if ((dbData != null)) { + if ((dbData.getDataType() == TangoConst.Tango_DEV_STATE)) { + dbData.setDataType(TangoConst.Tango_DEV_LONG); + } writable = dbData.getWritable(); } } @@ -670,7 +672,6 @@ public class SnapExtractor implements DBExtractionConst { logger.debug("read part = {}, write part = {}", readDbData, writeDbData); // Create the attributes if (writable == AttrWriteType._READ || writable == AttrWriteType._READ_WRITE) { - logger.debug("create attribute {}", readName); dynMngt.addAttribute(new SnapDynamicAttribute(readName, readDbData)); } if (writable == AttrWriteType._WRITE) { -- GitLab