X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fconfig-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fconfignetconfconnector%2Fmapping%2Fattributes%2Fresolving%2FArrayAttributeResolvingStrategy.java;h=9c17fa4892df1ef5ab4298ca1f5da8fb39dec27a;hp=a6a521a3dda35db05ba5de02a871bc772aa0f7ed;hb=7d4251f30d145d8b402e206a11fb4a2ff90ac351;hpb=004251a5b4552d6ac4fc555a3dfaca885fc75884 diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/resolving/ArrayAttributeResolvingStrategy.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/resolving/ArrayAttributeResolvingStrategy.java index a6a521a3dd..9c17fa4892 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/resolving/ArrayAttributeResolvingStrategy.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/resolving/ArrayAttributeResolvingStrategy.java @@ -14,6 +14,7 @@ import java.util.List; import javax.management.openmbean.ArrayType; import javax.management.openmbean.CompositeDataSupport; import javax.management.openmbean.CompositeType; +import javax.management.openmbean.OpenDataException; import javax.management.openmbean.OpenType; import org.opendaylight.controller.netconf.api.NetconfDocumentedException; import org.opendaylight.controller.netconf.confignetconfconnector.util.Util; @@ -73,6 +74,17 @@ final class ArrayAttributeResolvingStrategy extends AbstractAttributeResolvingSt i++; } + // Rebuild open type. Underlying composite types might have changed + if (innerTypeResolvingStrategy.getOpenType() instanceof CompositeType) { + try { + final ArrayType openType = new ArrayType(getOpenType().getDimension(), innerTypeResolvingStrategy.getOpenType()); + setOpenType(openType); + } catch (OpenDataException e) { + throw new IllegalStateException("An error occurred during restoration of array type " + this + + " for attribute " + attrName + " from value " + value, e); + } + } + LOG.debug("Attribute {} : {} parsed to type {} as {}", attrName, value, getOpenType(), toStringArray(parsedArray));