X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=pcep%2Fbase-parser%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fprotocol%2Fpcep%2Fparser%2Fobject%2FPCEPSvecObjectParser.java;fp=pcep%2Fbase-parser%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fprotocol%2Fpcep%2Fparser%2Fobject%2FPCEPSvecObjectParser.java;h=6194ebfb698877bc509a643120993118946ef8c6;hb=5cfd57fe4d2e1d62e822f7d90ef6a0a12441b30b;hp=c3548a25a1a7730f50915fb50b054619619dbac5;hpb=462aec855c5bb8afe31f0c9b34b2196a69e5bcd1;p=bgpcep.git diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPSvecObjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPSvecObjectParser.java index c3548a25a1..6194ebfb69 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPSvecObjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPSvecObjectParser.java @@ -9,10 +9,10 @@ package org.opendaylight.protocol.pcep.parser.object; import static com.google.common.base.Preconditions.checkArgument; +import com.google.common.collect.ImmutableSet; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; -import java.util.ArrayList; -import java.util.List; +import java.util.Set; import org.opendaylight.protocol.pcep.spi.CommonObjectParser; import org.opendaylight.protocol.pcep.spi.ObjectSerializer; import org.opendaylight.protocol.pcep.spi.ObjectUtil; @@ -69,11 +69,12 @@ public final class PCEPSvecObjectParser extends CommonObjectParser implements Ob } bytes.skipBytes(FLAGS_F_OFFSET); final BitArray flags = BitArray.valueOf(bytes, FLAGS_SIZE); - final List requestIDs = new ArrayList<>(); - + final var builder = ImmutableSet.builder(); while (bytes.isReadable()) { - requestIDs.add(new RequestId(ByteBufUtils.readUint32(bytes))); + builder.add(new RequestId(ByteBufUtils.readUint32(bytes))); } + final Set requestIDs = builder.build(); + if (requestIDs.isEmpty()) { throw new PCEPDeserializerException("Empty Svec Object - no request ids."); } @@ -94,6 +95,9 @@ public final class PCEPSvecObjectParser extends CommonObjectParser implements Ob checkArgument(object instanceof Svec, "Wrong instance of PCEPObject. Passed %s. Needed SvecObject.", object.getClass()); final Svec svecObj = (Svec) object; + final Set requestIDs = svecObj.getRequestsIds(); + checkArgument(!requestIDs.isEmpty(), "Empty Svec Object - no request ids."); + final ByteBuf body = Unpooled.buffer(); body.writeZero(FLAGS_F_OFFSET); final BitArray flags = new BitArray(FLAGS_SIZE); @@ -104,9 +108,6 @@ public final class PCEPSvecObjectParser extends CommonObjectParser implements Ob flags.set(P_FLAG_OFFSET, svecObj.getPartialPathDiverse()); flags.toByteBuf(body); - final List requestIDs = svecObj.getRequestsIds(); - // FIXME: remove this assert - assert !requestIDs.isEmpty() : "Empty Svec Object - no request ids."; for (final RequestId requestId : requestIDs) { ByteBufUtils.write(body, requestId.getValue()); }