From cea606c51594c5d9c2a03c5af670c1c0aab5c136 Mon Sep 17 00:00:00 2001 From: Milos Fabian Date: Thu, 7 Aug 2014 15:39:16 +0200 Subject: [PATCH] Bug-731: Fixed few major Sonar warnings Change-Id: Ic176a1f7e5478721571b8efdab470bd0dad760d6 Signed-off-by: Milos Fabian --- .../yang/bgp/linkstate/LinkstateModule.java | 4 +-- .../linkstate/LinkstateAttributeParser.java | 6 ++-- .../message/BGPNotificationMessageParser.java | 2 +- .../impl/message/BGPOpenMessageParser.java | 2 +- .../impl/message/BGPUpdateMessageParser.java | 4 +-- .../open/GracefulCapabilityHandler.java | 4 ++- .../SimpleBGPExtensionConsumerContext.java | 35 ++++++++----------- .../SimpleBGPExtensionProviderContext.java | 26 +++++++------- .../yang/bgp/rib/impl/RIBImplModule.java | 16 +++++---- .../protocol/bgp/rib/impl/BGPSessionImpl.java | 13 +++---- .../bgp/rib/impl/SpeakerSessionMock.java | 4 +-- .../bgp/rib/spi/BGPObjectComparator.java | 3 -- .../protocol/bgp/testtool/Main.java | 12 ++++--- .../provider/LinkstateTopologyBuilder.java | 6 ++-- .../bgp/topology/provider/UriBuilder.java | 14 ++++---- .../Stateful02PCRequestMessageParser.java | 2 +- ...ful07PCEPSessionProposalFactoryModule.java | 16 +++++---- .../CInitiated00LspObjectParser.java | 22 ++++++------ .../stateful07/Stateful07LspObjectParser.java | 26 ++++++++------ .../pcep/impl/PCEPDispatcherImplModule.java | 3 +- .../protocol/pcep/impl/PCEPSessionImpl.java | 8 +++-- .../message/PCEPRequestMessageParser.java | 4 +-- .../pcep/impl/FiniteStateMachineTest.java | 16 ++++----- .../pcep/spi/VendorInformationUtil.java | 2 +- .../protocol/pcep/testtool/Main.java | 14 ++++---- .../pcep/testtool/SimpleSessionListener.java | 4 +-- .../pcep/testtool/TestingSessionListener.java | 8 +++-- .../pcep/testtool/PCEPTestingToolTest.java | 6 ++-- .../AbstractTopologySessionListener.java | 2 ++ .../Stateful02TopologySessionListener.java | 8 ++--- .../Stateful07TopologySessionListener.java | 9 ++--- .../provider/PCEPTopologyProviderModule.java | 10 +++--- .../impl/InstructionSchedulerImplModule.java | 4 +-- .../opendaylight/protocol/util/ByteArray.java | 11 ++++-- 34 files changed, 172 insertions(+), 154 deletions(-) diff --git a/bgp/linkstate/src/main/java/org/opendaylight/controller/config/yang/bgp/linkstate/LinkstateModule.java b/bgp/linkstate/src/main/java/org/opendaylight/controller/config/yang/bgp/linkstate/LinkstateModule.java index 5715e112fc..06a6220af4 100644 --- a/bgp/linkstate/src/main/java/org/opendaylight/controller/config/yang/bgp/linkstate/LinkstateModule.java +++ b/bgp/linkstate/src/main/java/org/opendaylight/controller/config/yang/bgp/linkstate/LinkstateModule.java @@ -47,8 +47,8 @@ public final class LinkstateModule extends org.opendaylight.controller.config.ya @Override public java.lang.AutoCloseable createInstance() { final class LinkstateExtension implements AutoCloseable, BGPExtensionProviderActivator, RIBExtensionProviderActivator { - final BGPExtensionProviderActivator bgpact = new BGPActivator(getIanaLinkstateAttributeType()); - final RIBExtensionProviderActivator ribact = new RIBActivator(); + private final BGPExtensionProviderActivator bgpact = new BGPActivator(getIanaLinkstateAttributeType()); + private final RIBExtensionProviderActivator ribact = new RIBActivator(); @Override public void close() { diff --git a/bgp/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/LinkstateAttributeParser.java b/bgp/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/LinkstateAttributeParser.java index a997520e4d..a623f234ea 100644 --- a/bgp/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/LinkstateAttributeParser.java +++ b/bgp/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/LinkstateAttributeParser.java @@ -151,12 +151,12 @@ public class LinkstateAttributeParser implements AttributeParser, AttributeSeria @Override public void parseAttribute(final ByteBuf buffer, final PathAttributesBuilder builder) throws BGPParsingException { - final NlriType type = getNlriType(builder); - if (type == null) { + final NlriType nlriType = getNlriType(builder); + if (nlriType == null) { LOG.warn("No Linkstate NLRI found, not parsing Linkstate attribute"); return; } - final PathAttributes1 a = new PathAttributes1Builder().setLinkstatePathAttribute(parseLinkState(type, buffer)).build(); + final PathAttributes1 a = new PathAttributes1Builder().setLinkstatePathAttribute(parseLinkState(nlriType, buffer)).build(); builder.addAugmentation(PathAttributes1.class, a); } diff --git a/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/BGPNotificationMessageParser.java b/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/BGPNotificationMessageParser.java index 2868c09cab..87bc1c3bff 100644 --- a/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/BGPNotificationMessageParser.java +++ b/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/BGPNotificationMessageParser.java @@ -43,7 +43,7 @@ public final class BGPNotificationMessageParser implements MessageParser, Messag */ @Override public void serializeMessage(final Notification msg, final ByteBuf bytes) { - Preconditions.checkArgument(msg != null && msg instanceof Notify, "BGP Notification message cannot be null"); + Preconditions.checkArgument(msg instanceof Notify, "BGP Notification message cannot be null"); final Notify ntf = (Notify) msg; LOG.trace("Started serializing Notification message: {}", ntf); diff --git a/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/BGPOpenMessageParser.java b/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/BGPOpenMessageParser.java index 4c47d9c699..1694c73d70 100644 --- a/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/BGPOpenMessageParser.java +++ b/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/BGPOpenMessageParser.java @@ -66,7 +66,7 @@ public final class BGPOpenMessageParser implements MessageParser, MessageSeriali */ @Override public void serializeMessage(final Notification msg, final ByteBuf bytes) { - Preconditions.checkArgument(msg != null && msg instanceof Open, "BGP Open message cannot be null"); + Preconditions.checkArgument(msg instanceof Open, "BGP Open message cannot be null"); LOG.trace("Started serializing open message: {}", msg); final Open open = (Open) msg; final ByteBuf msgBody = Unpooled.buffer(); diff --git a/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/BGPUpdateMessageParser.java b/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/BGPUpdateMessageParser.java index b0c266fe73..2fbc681c23 100644 --- a/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/BGPUpdateMessageParser.java +++ b/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/BGPUpdateMessageParser.java @@ -1,5 +1,5 @@ /* - * * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. + * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, @@ -101,7 +101,7 @@ public class BGPUpdateMessageParser implements MessageParser, MessageSerializer @Override public void serializeMessage(final Notification message, final ByteBuf bytes) { - Preconditions.checkArgument(message != null && message instanceof Update, "BGPUpdate message cannot be null"); + Preconditions.checkArgument(message instanceof Update, "BGPUpdate message cannot be null"); LOG.trace("Started serializing update message: {}", message); final Update update = (Update) message; diff --git a/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/open/GracefulCapabilityHandler.java b/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/open/GracefulCapabilityHandler.java index cda8c5fac3..1c4ab72248 100644 --- a/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/open/GracefulCapabilityHandler.java +++ b/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/open/GracefulCapabilityHandler.java @@ -55,6 +55,8 @@ public final class GracefulCapabilityHandler implements CapabilityParser, Capabi private static final int AFI_FLAG_FORWARDING_STATE = 0x80; + private static final int MAX_RESTART_TIME = 4095; + private final AddressFamilyRegistry afiReg; private final SubsequentAddressFamilyRegistry safiReg; @@ -79,7 +81,7 @@ public final class GracefulCapabilityHandler implements CapabilityParser, Capabi int timeval = 0; final Integer time = grace.getRestartTime(); if (time != null) { - Preconditions.checkArgument(time >= 0 && time <= 4095); + Preconditions.checkArgument(time >= 0 && time <= MAX_RESTART_TIME); timeval = time; } bytes.writeByte(flagBits + timeval / 256); diff --git a/bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/pojo/SimpleBGPExtensionConsumerContext.java b/bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/pojo/SimpleBGPExtensionConsumerContext.java index ea6c768157..e134af0007 100644 --- a/bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/pojo/SimpleBGPExtensionConsumerContext.java +++ b/bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/pojo/SimpleBGPExtensionConsumerContext.java @@ -7,56 +7,49 @@ */ package org.opendaylight.protocol.bgp.parser.spi.pojo; -import org.opendaylight.protocol.bgp.parser.spi.AddressFamilyRegistry; -import org.opendaylight.protocol.bgp.parser.spi.AttributeRegistry; import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionConsumerContext; -import org.opendaylight.protocol.bgp.parser.spi.CapabilityRegistry; -import org.opendaylight.protocol.bgp.parser.spi.MessageRegistry; -import org.opendaylight.protocol.bgp.parser.spi.NlriRegistry; -import org.opendaylight.protocol.bgp.parser.spi.ParameterRegistry; -import org.opendaylight.protocol.bgp.parser.spi.SubsequentAddressFamilyRegistry; class SimpleBGPExtensionConsumerContext implements BGPExtensionConsumerContext { - protected final SimpleAddressFamilyRegistry afiReg = new SimpleAddressFamilyRegistry(); - protected final SimpleAttributeRegistry attrReg = new SimpleAttributeRegistry(); - protected final SimpleCapabilityRegistry capReg = new SimpleCapabilityRegistry(); - protected final SimpleMessageRegistry msgReg = new SimpleMessageRegistry(); - protected final SimpleSubsequentAddressFamilyRegistry safiReg = new SimpleSubsequentAddressFamilyRegistry(); - protected final SimpleParameterRegistry paramReg = new SimpleParameterRegistry(); - protected final SimpleNlriRegistry nlriReg = new SimpleNlriRegistry(this.afiReg, this.safiReg); + private final SimpleAddressFamilyRegistry afiReg = new SimpleAddressFamilyRegistry(); + private final SimpleAttributeRegistry attrReg = new SimpleAttributeRegistry(); + private final SimpleCapabilityRegistry capReg = new SimpleCapabilityRegistry(); + private final SimpleMessageRegistry msgReg = new SimpleMessageRegistry(); + private final SimpleSubsequentAddressFamilyRegistry safiReg = new SimpleSubsequentAddressFamilyRegistry(); + private final SimpleParameterRegistry paramReg = new SimpleParameterRegistry(); + private final SimpleNlriRegistry nlriReg = new SimpleNlriRegistry(this.afiReg, this.safiReg); @Override - public final AddressFamilyRegistry getAddressFamilyRegistry() { + public final SimpleAddressFamilyRegistry getAddressFamilyRegistry() { return this.afiReg; } @Override - public final AttributeRegistry getAttributeRegistry() { + public final SimpleAttributeRegistry getAttributeRegistry() { return this.attrReg; } @Override - public final CapabilityRegistry getCapabilityRegistry() { + public final SimpleCapabilityRegistry getCapabilityRegistry() { return this.capReg; } @Override - public final MessageRegistry getMessageRegistry() { + public final SimpleMessageRegistry getMessageRegistry() { return this.msgReg; } @Override - public final NlriRegistry getNlriRegistry() { + public final SimpleNlriRegistry getNlriRegistry() { return this.nlriReg; } @Override - public final ParameterRegistry getParameterRegistry() { + public final SimpleParameterRegistry getParameterRegistry() { return this.paramReg; } @Override - public final SubsequentAddressFamilyRegistry getSubsequentAddressFamilyRegistry() { + public final SimpleSubsequentAddressFamilyRegistry getSubsequentAddressFamilyRegistry() { return this.safiReg; } } diff --git a/bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/pojo/SimpleBGPExtensionProviderContext.java b/bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/pojo/SimpleBGPExtensionProviderContext.java index 460fab3a99..9401acd3e8 100644 --- a/bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/pojo/SimpleBGPExtensionProviderContext.java +++ b/bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/pojo/SimpleBGPExtensionProviderContext.java @@ -10,9 +10,7 @@ package org.opendaylight.protocol.bgp.parser.spi.pojo; import com.google.common.base.Preconditions; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; - import java.util.concurrent.atomic.AtomicReference; - import org.opendaylight.protocol.bgp.parser.spi.AttributeParser; import org.opendaylight.protocol.bgp.parser.spi.AttributeSerializer; import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext; @@ -67,63 +65,63 @@ public class SimpleBGPExtensionProviderContext extends SimpleBGPExtensionConsume @Override public AutoCloseable registerAddressFamily(final Class clazz, final int number) { - return this.afiReg.registerAddressFamily(clazz, number); + return this.getAddressFamilyRegistry().registerAddressFamily(clazz, number); } @Override public AutoCloseable registerAttributeParser(final int attributeType, final AttributeParser parser) { - return this.attrReg.registerAttributeParser(attributeType, parser); + return this.getAttributeRegistry().registerAttributeParser(attributeType, parser); } @Override public AutoCloseable registerAttributeSerializer(final Class attributeClass, final AttributeSerializer serializer) { - return this.attrReg.registerAttributeSerializer(attributeClass, serializer); + return this.getAttributeRegistry().registerAttributeSerializer(attributeClass, serializer); } @Override public AutoCloseable registerCapabilityParser(final int capabilityType, final CapabilityParser parser) { - return this.capReg.registerCapabilityParser(capabilityType, parser); + return this.getCapabilityRegistry().registerCapabilityParser(capabilityType, parser); } @Override public AutoCloseable registerCapabilitySerializer(final Class capabilityClass, final CapabilitySerializer serializer) { - return this.capReg.registerCapabilitySerializer(capabilityClass, serializer); + return this.getCapabilityRegistry().registerCapabilitySerializer(capabilityClass, serializer); } @Override public AutoCloseable registerMessageParser(final int messageType, final MessageParser parser) { - return this.msgReg.registerMessageParser(messageType, parser); + return this.getMessageRegistry().registerMessageParser(messageType, parser); } @Override public AutoCloseable registerMessageSerializer(final Class messageClass, final MessageSerializer serializer) { - return this.msgReg.registerMessageSerializer(messageClass, serializer); + return this.getMessageRegistry().registerMessageSerializer(messageClass, serializer); } @Override public AutoCloseable registerNlriParser(final Class afi, final Class safi, final NlriParser parser) { - return this.nlriReg.registerNlriParser(afi, safi, parser); + return this.getNlriRegistry().registerNlriParser(afi, safi, parser); } @Override public AutoCloseable registerNlriSerializer(final Class nlriClass, final NlriSerializer serializer) { - return this.nlriReg.registerNlriSerializer(nlriClass,serializer); + return this.getNlriRegistry().registerNlriSerializer(nlriClass,serializer); } @Override public AutoCloseable registerParameterParser(final int parameterType, final ParameterParser parser) { - return this.paramReg.registerParameterParser(parameterType, parser); + return this.getParameterRegistry().registerParameterParser(parameterType, parser); } @Override public AutoCloseable registerParameterSerializer(final Class paramClass, final ParameterSerializer serializer) { - return this.paramReg.registerParameterSerializer(paramClass, serializer); + return this.getParameterRegistry().registerParameterSerializer(paramClass, serializer); } @Override public AutoCloseable registerSubsequentAddressFamily(final Class clazz, final int number) { - return this.safiReg.registerSubsequentAddressFamily(clazz, number); + return this.getSubsequentAddressFamilyRegistry().registerSubsequentAddressFamily(clazz, number); } @Override diff --git a/bgp/rib-impl/src/main/java/org/opendaylight/controller/config/yang/bgp/rib/impl/RIBImplModule.java b/bgp/rib-impl/src/main/java/org/opendaylight/controller/config/yang/bgp/rib/impl/RIBImplModule.java index 38efbb20e6..6d2bbe4ae9 100644 --- a/bgp/rib-impl/src/main/java/org/opendaylight/controller/config/yang/bgp/rib/impl/RIBImplModule.java +++ b/bgp/rib-impl/src/main/java/org/opendaylight/controller/config/yang/bgp/rib/impl/RIBImplModule.java @@ -25,6 +25,8 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types. */ public final class RIBImplModule extends org.opendaylight.controller.config.yang.bgp.rib.impl.AbstractRIBImplModule { + private static final String IS_NOT_SET = "is not set."; + public RIBImplModule(final org.opendaylight.controller.config.api.ModuleIdentifier name, final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { super(name, dependencyResolver); @@ -38,13 +40,13 @@ public final class RIBImplModule extends org.opendaylight.controller.config.yang @Override public void customValidation() { - JmxAttributeValidationException.checkNotNull(getExtensions(), "is not set.", extensionsJmxAttribute); - JmxAttributeValidationException.checkNotNull(getRibId(), "is not set.", ribIdJmxAttribute); - JmxAttributeValidationException.checkNotNull(getLocalAs(), "is not set.", localAsJmxAttribute); - JmxAttributeValidationException.checkNotNull(getBgpId(), "is not set.", bgpIdJmxAttribute); - JmxAttributeValidationException.checkNotNull(getTcpReconnectStrategy(), "is not set.", tcpReconnectStrategyJmxAttribute); - JmxAttributeValidationException.checkNotNull(getSessionReconnectStrategy(), "is not set.", sessionReconnectStrategyJmxAttribute); - JmxAttributeValidationException.checkNotNull(getLocalTable(), "is not set.", localTableJmxAttribute); + JmxAttributeValidationException.checkNotNull(getExtensions(), IS_NOT_SET, extensionsJmxAttribute); + JmxAttributeValidationException.checkNotNull(getRibId(), IS_NOT_SET, ribIdJmxAttribute); + JmxAttributeValidationException.checkNotNull(getLocalAs(), IS_NOT_SET, localAsJmxAttribute); + JmxAttributeValidationException.checkNotNull(getBgpId(), IS_NOT_SET, bgpIdJmxAttribute); + JmxAttributeValidationException.checkNotNull(getTcpReconnectStrategy(), IS_NOT_SET, tcpReconnectStrategyJmxAttribute); + JmxAttributeValidationException.checkNotNull(getSessionReconnectStrategy(), IS_NOT_SET, sessionReconnectStrategyJmxAttribute); + JmxAttributeValidationException.checkNotNull(getLocalTable(), IS_NOT_SET, localTableJmxAttribute); } @Override diff --git a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPSessionImpl.java b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPSessionImpl.java index 4c1cf57c67..bcd9b18e9a 100644 --- a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPSessionImpl.java +++ b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPSessionImpl.java @@ -12,16 +12,12 @@ import com.google.common.base.Objects; import com.google.common.base.Objects.ToStringHelper; import com.google.common.base.Preconditions; import com.google.common.collect.Sets; - import io.netty.channel.Channel; - import java.io.IOException; import java.util.Date; import java.util.Set; import java.util.concurrent.TimeUnit; - import javax.annotation.concurrent.GuardedBy; - import org.opendaylight.protocol.bgp.parser.AsNumberUtil; import org.opendaylight.protocol.bgp.parser.BGPError; import org.opendaylight.protocol.bgp.parser.BgpTableTypeImpl; @@ -74,10 +70,10 @@ public class BGPSessionImpl extends AbstractProtocolSession implem } /** - * System.nanoTime value about when was sent the last message Protected to be updated also in tests. + * System.nanoTime value about when was sent the last message. */ @VisibleForTesting - protected long lastMessageSentAt; + private long lastMessageSentAt; /** * System.nanoTime value about when was received the last message @@ -322,4 +318,9 @@ public class BGPSessionImpl extends AbstractProtocolSession implem channel.eventLoop().submit(task); } + + @VisibleForTesting + protected void setLastMessageSentAt(final long lastMessageSentAt) { + this.lastMessageSentAt = lastMessageSentAt; + } } diff --git a/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/SpeakerSessionMock.java b/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/SpeakerSessionMock.java index c3cadacdcb..72bdf15dce 100644 --- a/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/SpeakerSessionMock.java +++ b/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/SpeakerSessionMock.java @@ -8,8 +8,8 @@ package org.opendaylight.protocol.bgp.rib.impl; import static org.mockito.Mockito.mock; -import io.netty.channel.Channel; +import io.netty.channel.Channel; import org.opendaylight.protocol.bgp.rib.spi.BGPSessionListener; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.OpenBuilder; import org.opendaylight.yangtools.yang.binding.Notification; @@ -28,7 +28,7 @@ public class SpeakerSessionMock extends BGPSessionImpl { @Override public void sendMessage(final Notification msg) { - this.lastMessageSentAt = System.nanoTime(); + this.setLastMessageSentAt(System.nanoTime()); this.client.onMessage(this, msg); } } diff --git a/bgp/rib-spi/src/main/java/org/opendaylight/protocol/bgp/rib/spi/BGPObjectComparator.java b/bgp/rib-spi/src/main/java/org/opendaylight/protocol/bgp/rib/spi/BGPObjectComparator.java index b4409ed9d9..08c1e82030 100644 --- a/bgp/rib-spi/src/main/java/org/opendaylight/protocol/bgp/rib/spi/BGPObjectComparator.java +++ b/bgp/rib-spi/src/main/java/org/opendaylight/protocol/bgp/rib/spi/BGPObjectComparator.java @@ -10,11 +10,9 @@ package org.opendaylight.protocol.bgp.rib.spi; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; import com.google.common.net.InetAddresses; - import java.util.Arrays; import java.util.Comparator; import java.util.List; - import org.opendaylight.protocol.bgp.rib.spi.AbstractAdjRIBs.RIBEntryData; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.AsNumber; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.PathAttributes; @@ -115,7 +113,6 @@ public final class BGPObjectComparator implements Comparator buildLinkIdentifier(final UriBuilder base, final LinkId id) { + private InstanceIdentifier buildLinkIdentifier(final LinkId id) { return getInstanceIdentifier().child( org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Link.class, new LinkKey(id)); @@ -512,7 +512,7 @@ public final class LinkstateTopologyBuilder extends AbstractTopologyBuilder lid = buildLinkIdentifier(base, lb.getLinkId()); + final InstanceIdentifier lid = buildLinkIdentifier(lb.getLinkId()); final Link link = lb.build(); trans.put(LogicalDatastoreType.OPERATIONAL, lid, link); @@ -532,7 +532,7 @@ public final class LinkstateTopologyBuilder extends AbstractTopologyBuilder lid = buildLinkIdentifier(base, id); + final InstanceIdentifier lid = buildLinkIdentifier(id); trans.delete(LogicalDatastoreType.OPERATIONAL, lid); LOG.debug("Removed link {}", lid); diff --git a/bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/UriBuilder.java b/bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/UriBuilder.java index faa2c8e3de..82a5609d0f 100644 --- a/bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/UriBuilder.java +++ b/bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/UriBuilder.java @@ -76,13 +76,13 @@ final class UriBuilder { } private String isoId(final byte[] bytes) { - final StringBuilder sb = new StringBuilder(); - sb.append(Hex.encodeHexString(new byte[] { bytes[0], bytes[1] })); - sb.append('.'); - sb.append(Hex.encodeHexString(new byte[] { bytes[2], bytes[3] })); - sb.append('.'); - sb.append(Hex.encodeHexString(new byte[] { bytes[4], bytes[5] })); - return sb.toString(); + final StringBuilder sBuilder = new StringBuilder(); + sBuilder.append(Hex.encodeHexString(new byte[] { bytes[0], bytes[1] })); + sBuilder.append('.'); + sBuilder.append(Hex.encodeHexString(new byte[] { bytes[2], bytes[3] })); + sBuilder.append('.'); + sBuilder.append(Hex.encodeHexString(new byte[] { bytes[4], bytes[5] })); + return sBuilder.toString(); } private String formatRouterIdentifier(final CRouterIdentifier routerIdentifier) { diff --git a/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful02/Stateful02PCRequestMessageParser.java b/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful02/Stateful02PCRequestMessageParser.java index 17199b34a9..eaf0bb3b7e 100644 --- a/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful02/Stateful02PCRequestMessageParser.java +++ b/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful02/Stateful02PCRequestMessageParser.java @@ -200,7 +200,7 @@ public final class Stateful02PCRequestMessageParser extends PCEPRequestMessagePa if (rp.isReoptimization() && builder.getBandwidth() != null - && builder.getReportedRoute().getBandwidth().getBandwidth() != new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.network.concepts.rev131125.Bandwidth(new byte[] { 0 }) + && !builder.getReportedRoute().getBandwidth().getBandwidth().equals(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.network.concepts.rev131125.Bandwidth(new byte[] { 0 })) && builder.getReportedRoute().getRro() == null) { errors.add(createErrorMsg(PCEPErrors.RRO_MISSING, Optional.of(rp))); return null; diff --git a/pcep/ietf-stateful07/src/main/java/org/opendaylight/controller/config/yang/pcep/stateful07/cfg/Stateful07PCEPSessionProposalFactoryModule.java b/pcep/ietf-stateful07/src/main/java/org/opendaylight/controller/config/yang/pcep/stateful07/cfg/Stateful07PCEPSessionProposalFactoryModule.java index 044a923026..1b94444a13 100644 --- a/pcep/ietf-stateful07/src/main/java/org/opendaylight/controller/config/yang/pcep/stateful07/cfg/Stateful07PCEPSessionProposalFactoryModule.java +++ b/pcep/ietf-stateful07/src/main/java/org/opendaylight/controller/config/yang/pcep/stateful07/cfg/Stateful07PCEPSessionProposalFactoryModule.java @@ -8,9 +8,7 @@ package org.opendaylight.controller.config.yang.pcep.stateful07.cfg; import com.google.common.base.Preconditions; - import java.net.InetSocketAddress; - import org.opendaylight.controller.config.api.JmxAttributeValidationException; import org.opendaylight.protocol.pcep.PCEPSessionProposalFactory; import org.opendaylight.protocol.pcep.ietf.initiated00.Stateful07SessionProposalFactory; @@ -25,6 +23,10 @@ public final class Stateful07PCEPSessionProposalFactoryModule extends org.opendaylight.controller.config.yang.pcep.stateful07.cfg.AbstractStateful07PCEPSessionProposalFactoryModule { private static final Logger LOG = LoggerFactory.getLogger(Stateful07PCEPSessionProposalFactoryModule.class); + private static final String VALUE_IS_NOT_SET = "value is not set."; + + private static final int DT_KA_RATIO = 4; + public Stateful07PCEPSessionProposalFactoryModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier, final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { super(identifier, dependencyResolver); @@ -39,14 +41,14 @@ public final class Stateful07PCEPSessionProposalFactoryModule extends @Override protected void customValidation() { - JmxAttributeValidationException.checkNotNull(getActive(), "value is not set.", activeJmxAttribute); - JmxAttributeValidationException.checkNotNull(getInitiated(), "value is not set.", initiatedJmxAttribute); - JmxAttributeValidationException.checkNotNull(getDeadTimerValue(), "value is not set.", deadTimerValueJmxAttribute); - JmxAttributeValidationException.checkNotNull(getKeepAliveTimerValue(), "value is not set.", keepAliveTimerValueJmxAttribute); + JmxAttributeValidationException.checkNotNull(getActive(), VALUE_IS_NOT_SET, activeJmxAttribute); + JmxAttributeValidationException.checkNotNull(getInitiated(), VALUE_IS_NOT_SET, initiatedJmxAttribute); + JmxAttributeValidationException.checkNotNull(getDeadTimerValue(), VALUE_IS_NOT_SET, deadTimerValueJmxAttribute); + JmxAttributeValidationException.checkNotNull(getKeepAliveTimerValue(), VALUE_IS_NOT_SET, keepAliveTimerValueJmxAttribute); if (getKeepAliveTimerValue() != 0) { JmxAttributeValidationException.checkCondition(getKeepAliveTimerValue() >= 1, "minimum value is 1.", keepAliveTimerValueJmxAttribute); - if (getDeadTimerValue() != 0 && (getDeadTimerValue() / getKeepAliveTimerValue() != 4)) { + if (getDeadTimerValue() != 0 && (getDeadTimerValue() / getKeepAliveTimerValue() != DT_KA_RATIO)) { LOG.warn("DeadTimerValue should be 4 times greater than KeepAliveTimerValue"); } } diff --git a/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/initiated00/CInitiated00LspObjectParser.java b/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/initiated00/CInitiated00LspObjectParser.java index 7a9975056c..4446d4a50b 100644 --- a/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/initiated00/CInitiated00LspObjectParser.java +++ b/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/initiated00/CInitiated00LspObjectParser.java @@ -45,7 +45,7 @@ public class CInitiated00LspObjectParser extends Stateful07LspObjectParser { builder.setIgnore(header.isIgnore()); builder.setProcessingRule(header.isProcessingRule()); int[] plspIdRaw = new int[] { bytes.readUnsignedByte(), bytes.readUnsignedByte(), bytes.getUnsignedByte(2), }; - builder.setPlspId(new PlspId((long) ((plspIdRaw[0] << 12) | (plspIdRaw[1] << 4) | (plspIdRaw[2] >> 4)))); + builder.setPlspId(new PlspId((long) ((plspIdRaw[0] << TWELVE_BITS_SHIFT) | (plspIdRaw[1] << FOUR_BITS_SHIFT) | (plspIdRaw[2] >> FOUR_BITS_SHIFT)))); final BitSet flags = ByteArray.bytesToBitSet(ByteArray.readBytes(bytes, 2)); builder.setDelegate(flags.get(DELEGATE_FLAG_OFFSET)); builder.setSync(flags.get(SYNC_FLAG_OFFSET)); @@ -69,31 +69,31 @@ public class CInitiated00LspObjectParser extends Stateful07LspObjectParser { final Lsp specObj = (Lsp) object; final ByteBuf body = Unpooled.buffer(); - final byte[] retBytes = new byte[4]; + final byte[] retBytes = new byte[BODY_LENGTH]; Preconditions.checkArgument(specObj.getPlspId() != null, "PLSP-ID not present"); final int lspID = specObj.getPlspId().getValue().intValue(); - retBytes[0] = (byte) (lspID >> 12); - retBytes[1] = (byte) (lspID >> 4); - retBytes[2] = (byte) (lspID << 4); + retBytes[0] = (byte) (lspID >> TWELVE_BITS_SHIFT); + retBytes[1] = (byte) (lspID >> FOUR_BITS_SHIFT); + retBytes[2] = (byte) (lspID << FOUR_BITS_SHIFT); if (specObj.isDelegate() != null && specObj.isDelegate()) { - retBytes[3] |= 1 << (Byte.SIZE - (DELEGATE_FLAG_OFFSET - Byte.SIZE) - 1); + retBytes[FLAGS_INDEX] |= 1 << (Byte.SIZE - (DELEGATE_FLAG_OFFSET - Byte.SIZE) - 1); } if (specObj.isRemove() != null && specObj.isRemove()) { - retBytes[3] |= 1 << (Byte.SIZE - (REMOVE_FLAG_OFFSET - Byte.SIZE) - 1); + retBytes[FLAGS_INDEX] |= 1 << (Byte.SIZE - (REMOVE_FLAG_OFFSET - Byte.SIZE) - 1); } if (specObj.isSync() != null && specObj.isSync()) { - retBytes[3] |= 1 << (Byte.SIZE - (SYNC_FLAG_OFFSET - Byte.SIZE) - 1); + retBytes[FLAGS_INDEX] |= 1 << (Byte.SIZE - (SYNC_FLAG_OFFSET - Byte.SIZE) - 1); } if (specObj.isAdministrative() != null && specObj.isAdministrative()) { - retBytes[3] |= 1 << (Byte.SIZE - (ADMINISTRATIVE_FLAG_OFFSET - Byte.SIZE) - 1); + retBytes[FLAGS_INDEX] |= 1 << (Byte.SIZE - (ADMINISTRATIVE_FLAG_OFFSET - Byte.SIZE) - 1); } if (specObj.getAugmentation(Lsp1.class) != null && specObj.getAugmentation(Lsp1.class).isCreate()) { - retBytes[3] |= 1 << (Byte.SIZE - (CREATE_FLAG_OFFSET - Byte.SIZE) - 1); + retBytes[FLAGS_INDEX] |= 1 << (Byte.SIZE - (CREATE_FLAG_OFFSET - Byte.SIZE) - 1); } if (specObj.getOperational() != null) { final int op = specObj.getOperational().getIntValue(); - retBytes[3] |= (op & 7) << 4; + retBytes[FLAGS_INDEX] |= (op & OP_VALUE_BITS_OFFSET) << FOUR_BITS_SHIFT; } body.writeBytes(retBytes); serializeTlvs(specObj.getTlvs(), body); diff --git a/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful07/Stateful07LspObjectParser.java b/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful07/Stateful07LspObjectParser.java index 3db875c93c..122ac09c89 100644 --- a/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful07/Stateful07LspObjectParser.java +++ b/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful07/Stateful07LspObjectParser.java @@ -58,6 +58,12 @@ public class Stateful07LspObjectParser extends AbstractObjectWithTlvsParser> 4)))); + builder.setPlspId(new PlspId((long) ((plspIdRaw[0] << TWELVE_BITS_SHIFT) | (plspIdRaw[1] << FOUR_BITS_SHIFT) | (plspIdRaw[2] >> FOUR_BITS_SHIFT)))); final BitSet flags = ByteArray.bytesToBitSet(ByteArray.readBytes(bytes, 2)); builder.setDelegate(flags.get(DELEGATE_FLAG_OFFSET)); builder.setSync(flags.get(SYNC_FLAG_OFFSET)); @@ -107,28 +113,28 @@ public class Stateful07LspObjectParser extends AbstractObjectWithTlvsParser> 12); - retBytes[1] = (byte) (lspID >> 4); - retBytes[2] = (byte) (lspID << 4); + retBytes[0] = (byte) (lspID >> TWELVE_BITS_SHIFT); + retBytes[1] = (byte) (lspID >> FOUR_BITS_SHIFT); + retBytes[2] = (byte) (lspID << FOUR_BITS_SHIFT); if (specObj.isDelegate() != null && specObj.isDelegate()) { - retBytes[3] |= 1 << (Byte.SIZE - (DELEGATE_FLAG_OFFSET - Byte.SIZE) - 1); + retBytes[FLAGS_INDEX] |= 1 << (Byte.SIZE - (DELEGATE_FLAG_OFFSET - Byte.SIZE) - 1); } if (specObj.isRemove() != null && specObj.isRemove()) { - retBytes[3] |= 1 << (Byte.SIZE - (REMOVE_FLAG_OFFSET - Byte.SIZE) - 1); + retBytes[FLAGS_INDEX] |= 1 << (Byte.SIZE - (REMOVE_FLAG_OFFSET - Byte.SIZE) - 1); } if (specObj.isSync() != null && specObj.isSync()) { - retBytes[3] |= 1 << (Byte.SIZE - (SYNC_FLAG_OFFSET - Byte.SIZE) - 1); + retBytes[FLAGS_INDEX] |= 1 << (Byte.SIZE - (SYNC_FLAG_OFFSET - Byte.SIZE) - 1); } if (specObj.isAdministrative() != null && specObj.isAdministrative()) { - retBytes[3] |= 1 << (Byte.SIZE - (ADMINISTRATIVE_FLAG_OFFSET - Byte.SIZE) - 1); + retBytes[FLAGS_INDEX] |= 1 << (Byte.SIZE - (ADMINISTRATIVE_FLAG_OFFSET - Byte.SIZE) - 1); } if (specObj.getOperational() != null) { final int op = specObj.getOperational().getIntValue(); - retBytes[3] |= (op & 7) << 4; + retBytes[FLAGS_INDEX] |= (op & OP_VALUE_BITS_OFFSET) << FOUR_BITS_SHIFT; } body.writeBytes(retBytes); serializeTlvs(specObj.getTlvs(), body); diff --git a/pcep/impl/src/main/java/org/opendaylight/controller/config/yang/pcep/impl/PCEPDispatcherImplModule.java b/pcep/impl/src/main/java/org/opendaylight/controller/config/yang/pcep/impl/PCEPDispatcherImplModule.java index 9b8fdb9471..cd63d91b73 100644 --- a/pcep/impl/src/main/java/org/opendaylight/controller/config/yang/pcep/impl/PCEPDispatcherImplModule.java +++ b/pcep/impl/src/main/java/org/opendaylight/controller/config/yang/pcep/impl/PCEPDispatcherImplModule.java @@ -50,7 +50,6 @@ public final class PCEPDispatcherImplModule extends org.opendaylight.controller. Open localPrefs = getPcepSessionProposalFactoryDependency().getSessionProposal(null, 0); DefaultPCEPSessionNegotiatorFactory negFactory = new DefaultPCEPSessionNegotiatorFactory(localPrefs, getMaxUnknownMessages()); - final PCEPDispatcherImpl instance = new PCEPDispatcherImpl(getPcepExtensionsDependency().getMessageHandlerRegistry(), negFactory, getBossGroupDependency(), getWorkerGroupDependency(), getMd5ChannelFactoryDependency(), getMd5ServerChannelFactoryDependency()); - return instance; + return new PCEPDispatcherImpl(getPcepExtensionsDependency().getMessageHandlerRegistry(), negFactory, getBossGroupDependency(), getWorkerGroupDependency(), getMd5ChannelFactoryDependency(), getMd5ServerChannelFactoryDependency()); } } diff --git a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/PCEPSessionImpl.java b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/PCEPSessionImpl.java index 01d9c3b995..5739ad1767 100644 --- a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/PCEPSessionImpl.java +++ b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/PCEPSessionImpl.java @@ -59,8 +59,7 @@ public class PCEPSessionImpl extends AbstractProtocolSession implements */ private long lastMessageReceivedAt; - @VisibleForTesting - protected final Queue unknownMessagesTimes = new LinkedList(); + private final Queue unknownMessagesTimes = new LinkedList(); private final PCEPSessionListener listener; @@ -384,4 +383,9 @@ public class PCEPSessionImpl extends AbstractProtocolSession implements public String getNodeIdentifier() { return ""; } + + @VisibleForTesting + protected final Queue getUnknownMessagesTimes() { + return this.unknownMessagesTimes; + } } diff --git a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPRequestMessageParser.java b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPRequestMessageParser.java index d1b87f855d..35d95bc872 100644 --- a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPRequestMessageParser.java +++ b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPRequestMessageParser.java @@ -339,8 +339,8 @@ public class PCEPRequestMessageParser extends AbstractMessageParser { if (rp.isReoptimization() && builder.getBandwidth() != null - && builder.getReportedRoute().getBandwidth().getBandwidth() != - new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.network.concepts.rev131125.Bandwidth(new byte[] { 0 }) + && !builder.getReportedRoute().getBandwidth().getBandwidth().equals( + new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.network.concepts.rev131125.Bandwidth(new byte[] { 0 })) && builder.getReportedRoute().getRro() == null) { errors.add(createErrorMsg(PCEPErrors.RRO_MISSING, Optional.of(rp))); return null; diff --git a/pcep/impl/src/test/java/org/opendaylight/protocol/pcep/impl/FiniteStateMachineTest.java b/pcep/impl/src/test/java/org/opendaylight/protocol/pcep/impl/FiniteStateMachineTest.java index ac2699cd06..e8b8966419 100644 --- a/pcep/impl/src/test/java/org/opendaylight/protocol/pcep/impl/FiniteStateMachineTest.java +++ b/pcep/impl/src/test/java/org/opendaylight/protocol/pcep/impl/FiniteStateMachineTest.java @@ -216,28 +216,28 @@ public class FiniteStateMachineTest { final SimpleSessionListener client = new SimpleSessionListener(); final PCEPSessionImpl s = new PCEPSessionImpl(client, 5, this.clientListener, this.openmsg.getOpenMessage().getOpen(), this.openmsg.getOpenMessage().getOpen()); s.handleMalformedMessage(PCEPErrors.CAPABILITY_NOT_SUPPORTED); - assertEquals(1, s.unknownMessagesTimes.size()); + assertEquals(1, s.getUnknownMessagesTimes().size()); Thread.sleep(10000); s.handleMalformedMessage(PCEPErrors.CAPABILITY_NOT_SUPPORTED); - assertEquals(2, s.unknownMessagesTimes.size()); + assertEquals(2, s.getUnknownMessagesTimes().size()); Thread.sleep(10000); s.handleMalformedMessage(PCEPErrors.CAPABILITY_NOT_SUPPORTED); - assertEquals(3, s.unknownMessagesTimes.size()); + assertEquals(3, s.getUnknownMessagesTimes().size()); Thread.sleep(20000); s.handleMalformedMessage(PCEPErrors.CAPABILITY_NOT_SUPPORTED); - assertEquals(4, s.unknownMessagesTimes.size()); + assertEquals(4, s.getUnknownMessagesTimes().size()); Thread.sleep(30000); s.handleMalformedMessage(PCEPErrors.CAPABILITY_NOT_SUPPORTED); - assertEquals(3, s.unknownMessagesTimes.size()); + assertEquals(3, s.getUnknownMessagesTimes().size()); Thread.sleep(10000); s.handleMalformedMessage(PCEPErrors.CAPABILITY_NOT_SUPPORTED); - assertEquals(3, s.unknownMessagesTimes.size()); + assertEquals(3, s.getUnknownMessagesTimes().size()); Thread.sleep(5000); s.handleMalformedMessage(PCEPErrors.CAPABILITY_NOT_SUPPORTED); - assertEquals(4, s.unknownMessagesTimes.size()); + assertEquals(4, s.getUnknownMessagesTimes().size()); Thread.sleep(1000); s.handleMalformedMessage(PCEPErrors.CAPABILITY_NOT_SUPPORTED); - assertEquals(5, s.unknownMessagesTimes.size()); + assertEquals(5, s.getUnknownMessagesTimes().size()); Thread.sleep(1000); s.handleMalformedMessage(PCEPErrors.CAPABILITY_NOT_SUPPORTED); synchronized (client) { diff --git a/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/VendorInformationUtil.java b/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/VendorInformationUtil.java index d638fa9870..52f008a33c 100644 --- a/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/VendorInformationUtil.java +++ b/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/VendorInformationUtil.java @@ -8,7 +8,7 @@ package org.opendaylight.protocol.pcep.spi; -public class VendorInformationUtil { +public final class VendorInformationUtil { public static final int VENDOR_INFORMATION_TLV_TYPE = 7; diff --git a/pcep/testtool/src/main/java/org/opendaylight/protocol/pcep/testtool/Main.java b/pcep/testtool/src/main/java/org/opendaylight/protocol/pcep/testtool/Main.java index bed72e8d99..54d03551a3 100644 --- a/pcep/testtool/src/main/java/org/opendaylight/protocol/pcep/testtool/Main.java +++ b/pcep/testtool/src/main/java/org/opendaylight/protocol/pcep/testtool/Main.java @@ -10,6 +10,8 @@ package org.opendaylight.protocol.pcep.testtool; import io.netty.channel.nio.NioEventLoopGroup; import java.net.InetAddress; import java.net.InetSocketAddress; +import java.net.UnknownHostException; +import java.util.concurrent.ExecutionException; import org.opendaylight.protocol.pcep.PCEPSessionProposalFactory; import org.opendaylight.protocol.pcep.ietf.initiated00.Stateful07SessionProposalFactory; import org.opendaylight.protocol.pcep.ietf.stateful07.StatefulActivator; @@ -64,7 +66,7 @@ public final class Main { } - public static void main(final String[] args) throws Exception { + public static void main(final String[] args) throws NumberFormatException, UnknownHostException, InterruptedException, ExecutionException { if (args.length == 0 || (args.length == 1 && args[0].equalsIgnoreCase("--help"))) { LOG.info(Main.USAGE); return; @@ -75,7 +77,6 @@ public final class Main { int deadTimerValue = 0; boolean stateful = false; boolean active = false; - final boolean versioned = false; boolean instant = false; int i = 0; @@ -114,11 +115,12 @@ public final class Main { final Open prefs = spf.getSessionProposal(address, 0); - final StatefulActivator activator07 = new StatefulActivator(); - activator07.start(ServiceLoaderPCEPExtensionProviderContext.getSingletonInstance()); + try (final StatefulActivator activator07 = new StatefulActivator()) { + activator07.start(ServiceLoaderPCEPExtensionProviderContext.getSingletonInstance()); - final PCEPDispatcherImpl dispatcher = new PCEPDispatcherImpl(ServiceLoaderPCEPExtensionProviderContext.getSingletonInstance().getMessageHandlerRegistry(), new DefaultPCEPSessionNegotiatorFactory(prefs, 5), new NioEventLoopGroup(), new NioEventLoopGroup()); + final PCEPDispatcherImpl dispatcher = new PCEPDispatcherImpl(ServiceLoaderPCEPExtensionProviderContext.getSingletonInstance().getMessageHandlerRegistry(), new DefaultPCEPSessionNegotiatorFactory(prefs, 5), new NioEventLoopGroup(), new NioEventLoopGroup()); - dispatcher.createServer(address, new TestingSessionListenerFactory()).get(); + dispatcher.createServer(address, new TestingSessionListenerFactory()).get(); + } } } diff --git a/pcep/testtool/src/main/java/org/opendaylight/protocol/pcep/testtool/SimpleSessionListener.java b/pcep/testtool/src/main/java/org/opendaylight/protocol/pcep/testtool/SimpleSessionListener.java index eba5f14f5f..f655da8683 100644 --- a/pcep/testtool/src/main/java/org/opendaylight/protocol/pcep/testtool/SimpleSessionListener.java +++ b/pcep/testtool/src/main/java/org/opendaylight/protocol/pcep/testtool/SimpleSessionListener.java @@ -8,9 +8,7 @@ package org.opendaylight.protocol.pcep.testtool; import com.google.common.collect.Lists; - import java.util.List; - import org.opendaylight.protocol.pcep.PCEPSession; import org.opendaylight.protocol.pcep.PCEPSessionListener; import org.opendaylight.protocol.pcep.PCEPTerminationReason; @@ -23,7 +21,7 @@ import org.slf4j.LoggerFactory; */ public class SimpleSessionListener implements PCEPSessionListener { - public List messages = Lists.newArrayList(); + private List messages = Lists.newArrayList(); private static final Logger LOG = LoggerFactory.getLogger(SimpleSessionListener.class); diff --git a/pcep/testtool/src/main/java/org/opendaylight/protocol/pcep/testtool/TestingSessionListener.java b/pcep/testtool/src/main/java/org/opendaylight/protocol/pcep/testtool/TestingSessionListener.java index d16d422185..0599d6ad94 100644 --- a/pcep/testtool/src/main/java/org/opendaylight/protocol/pcep/testtool/TestingSessionListener.java +++ b/pcep/testtool/src/main/java/org/opendaylight/protocol/pcep/testtool/TestingSessionListener.java @@ -8,9 +8,7 @@ package org.opendaylight.protocol.pcep.testtool; import com.google.common.collect.Lists; - import java.util.List; - import org.opendaylight.protocol.pcep.PCEPSession; import org.opendaylight.protocol.pcep.PCEPSessionListener; import org.opendaylight.protocol.pcep.PCEPTerminationReason; @@ -22,7 +20,7 @@ public class TestingSessionListener implements PCEPSessionListener { private final List messages = Lists.newArrayList(); - public boolean up = false; + private boolean up = false; private static final Logger LOG = LoggerFactory.getLogger(TestingSessionListener.class); @@ -55,4 +53,8 @@ public class TestingSessionListener implements PCEPSessionListener { public List messages() { return this.messages; } + + public boolean isUp () { + return this.up; + } } diff --git a/pcep/testtool/src/test/java/org/opendaylight/protocol/pcep/testtool/PCEPTestingToolTest.java b/pcep/testtool/src/test/java/org/opendaylight/protocol/pcep/testtool/PCEPTestingToolTest.java index 07c9146d81..6adf0da878 100644 --- a/pcep/testtool/src/test/java/org/opendaylight/protocol/pcep/testtool/PCEPTestingToolTest.java +++ b/pcep/testtool/src/test/java/org/opendaylight/protocol/pcep/testtool/PCEPTestingToolTest.java @@ -25,10 +25,10 @@ public class PCEPTestingToolTest { ssl.onMessage(null, new KeepaliveBuilder().setKeepaliveMessage(new KeepaliveMessageBuilder().build()).build()); assertEquals(1, ssl.messages().size()); assertTrue(ssl.messages().get(0) instanceof KeepaliveMessage); - assertFalse(ssl.up); + assertFalse(ssl.isUp()); ssl.onSessionUp(null); - assertTrue(ssl.up); + assertTrue(ssl.isUp()); ssl.onSessionDown(null, null); - assertFalse(ssl.up); + assertFalse(ssl.isUp()); } } diff --git a/pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/AbstractTopologySessionListener.java b/pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/AbstractTopologySessionListener.java index 68a4f04fc4..3151db0217 100644 --- a/pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/AbstractTopologySessionListener.java +++ b/pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/AbstractTopologySessionListener.java @@ -99,6 +99,8 @@ public abstract class AbstractTopologySessionListener implements PCEPSessi }; private static final Logger LOG = LoggerFactory.getLogger(AbstractTopologySessionListener.class); + protected static final String MISSING_XML_TAG = "Mandatory XML tags are missing."; + @GuardedBy("this") private final Map requests = new HashMap<>(); diff --git a/pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/Stateful02TopologySessionListener.java b/pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/Stateful02TopologySessionListener.java index c46c685463..4c30187c6e 100644 --- a/pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/Stateful02TopologySessionListener.java +++ b/pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/Stateful02TopologySessionListener.java @@ -155,7 +155,7 @@ public class Stateful02TopologySessionListener extends AbstractTopologySessionLi @Override public synchronized ListenableFuture addLsp(final AddLspArgs input) { - Preconditions.checkArgument(input != null && input.getName() != null && input.getNode() != null && input.getArguments() != null, "Mandatory XML tags are missing."); + Preconditions.checkArgument(input != null && input.getName() != null && input.getNode() != null && input.getArguments() != null, MISSING_XML_TAG); // Make sure there is no such LSP final InstanceIdentifier lsp = lspIdentifier(input.getName()); final ListenableFuture> f = readOperationalData(lsp); @@ -191,7 +191,7 @@ public class Stateful02TopologySessionListener extends AbstractTopologySessionLi @Override public synchronized ListenableFuture removeLsp(final RemoveLspArgs input) { - Preconditions.checkArgument(input != null && input.getName() != null && input.getNode() != null, "Mandatory XML tags are missing."); + Preconditions.checkArgument(input != null && input.getName() != null && input.getNode() != null, MISSING_XML_TAG); // Make sure the LSP exists, we need it for PLSP-ID final InstanceIdentifier lsp = lspIdentifier(input.getName()); final ListenableFuture> f = readOperationalData(lsp); @@ -222,7 +222,7 @@ public class Stateful02TopologySessionListener extends AbstractTopologySessionLi @Override public synchronized ListenableFuture updateLsp(final UpdateLspArgs input) { - Preconditions.checkArgument(input != null && input.getName() != null && input.getNode() != null && input.getArguments() != null, "Mandatory XML tags are missing."); + Preconditions.checkArgument(input != null && input.getName() != null && input.getNode() != null && input.getArguments() != null, MISSING_XML_TAG); // Make sure the LSP exists final InstanceIdentifier lsp = lspIdentifier(input.getName()); final ListenableFuture> f = readOperationalData(lsp); @@ -258,7 +258,7 @@ public class Stateful02TopologySessionListener extends AbstractTopologySessionLi @Override public synchronized ListenableFuture ensureLspOperational(final EnsureLspOperationalInput input) { - Preconditions.checkArgument(input != null && input.getName() != null && input.getNode() != null && input.getArguments() != null, "Mandatory XML tags are missing."); + Preconditions.checkArgument(input != null && input.getName() != null && input.getNode() != null && input.getArguments() != null, MISSING_XML_TAG); final Boolean op; final Arguments1 aa = input.getArguments().getAugmentation(Arguments1.class); if (aa == null) { diff --git a/pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/Stateful07TopologySessionListener.java b/pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/Stateful07TopologySessionListener.java index 506097499b..f6a41aa5c4 100644 --- a/pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/Stateful07TopologySessionListener.java +++ b/pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/Stateful07TopologySessionListener.java @@ -74,6 +74,7 @@ import org.slf4j.LoggerFactory; final class Stateful07TopologySessionListener extends AbstractTopologySessionListener { private static final Logger LOG = LoggerFactory.getLogger(Stateful07TopologySessionListener.class); + private final AtomicLong requestId = new AtomicLong(1L); /** @@ -211,7 +212,7 @@ final class Stateful07TopologySessionListener extends AbstractTopologySessionLis @Override public synchronized ListenableFuture addLsp(final AddLspArgs input) { - Preconditions.checkArgument(input != null && input.getName() != null && input.getNode() != null && input.getArguments() != null, "Mandatory XML tags are missing."); + Preconditions.checkArgument(input != null && input.getName() != null && input.getNode() != null && input.getArguments() != null, MISSING_XML_TAG); LOG.trace("AddLspArgs {}", input); // Make sure there is no such LSP final InstanceIdentifier lsp = lspIdentifier(input.getName()); @@ -257,7 +258,7 @@ final class Stateful07TopologySessionListener extends AbstractTopologySessionLis @Override public synchronized ListenableFuture removeLsp(final RemoveLspArgs input) { - Preconditions.checkArgument(input != null && input.getName() != null && input.getNode() != null, "Mandatory XML tags are missing."); + Preconditions.checkArgument(input != null && input.getName() != null && input.getNode() != null, MISSING_XML_TAG); LOG.trace("RemoveLspArgs {}", input); // Make sure the LSP exists, we need it for PLSP-ID final InstanceIdentifier lsp = lspIdentifier(input.getName()); @@ -291,7 +292,7 @@ final class Stateful07TopologySessionListener extends AbstractTopologySessionLis @Override public synchronized ListenableFuture updateLsp(final UpdateLspArgs input) { - Preconditions.checkArgument(input != null && input.getName() != null && input.getNode() != null && input.getArguments() != null, "Mandatory XML tags are missing."); + Preconditions.checkArgument(input != null && input.getName() != null && input.getNode() != null && input.getArguments() != null, MISSING_XML_TAG); LOG.trace("UpdateLspArgs {}", input); // Make sure the LSP exists final InstanceIdentifier lsp = lspIdentifier(input.getName()); @@ -353,7 +354,7 @@ final class Stateful07TopologySessionListener extends AbstractTopologySessionLis @Override public synchronized ListenableFuture ensureLspOperational(final EnsureLspOperationalInput input) { - Preconditions.checkArgument(input != null && input.getName() != null && input.getNode() != null && input.getArguments() != null, "Mandatory XML tags are missing."); + Preconditions.checkArgument(input != null && input.getName() != null && input.getNode() != null && input.getArguments() != null, MISSING_XML_TAG); final OperationalStatus op; final Arguments1 aa = input.getArguments().getAugmentation(Arguments1.class); if (aa != null) { diff --git a/pcep/topology-provider/src/main/java/org/opendaylight/controller/config/yang/pcep/topology/provider/PCEPTopologyProviderModule.java b/pcep/topology-provider/src/main/java/org/opendaylight/controller/config/yang/pcep/topology/provider/PCEPTopologyProviderModule.java index f34e78465b..21d00e788f 100644 --- a/pcep/topology-provider/src/main/java/org/opendaylight/controller/config/yang/pcep/topology/provider/PCEPTopologyProviderModule.java +++ b/pcep/topology-provider/src/main/java/org/opendaylight/controller/config/yang/pcep/topology/provider/PCEPTopologyProviderModule.java @@ -40,6 +40,8 @@ public final class PCEPTopologyProviderModule extends org.opendaylight.controller.config.yang.pcep.topology.provider.AbstractPCEPTopologyProviderModule { private static final Logger LOG = LoggerFactory.getLogger(PCEPTopologyProviderModule.class); + private static final String IS_NOT_SET = "is not set."; + public PCEPTopologyProviderModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier, final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { super(identifier, dependencyResolver); @@ -83,10 +85,10 @@ public final class PCEPTopologyProviderModule extends @Override public void customValidation() { - JmxAttributeValidationException.checkNotNull(getTopologyId(), "is not set.", topologyIdJmxAttribute); - JmxAttributeValidationException.checkNotNull(getListenAddress(), "is not set.", listenAddressJmxAttribute); - JmxAttributeValidationException.checkNotNull(getListenPort(), "is not set.", listenPortJmxAttribute); - JmxAttributeValidationException.checkNotNull(getStatefulPlugin(), "is not set.", statefulPluginJmxAttribute); + JmxAttributeValidationException.checkNotNull(getTopologyId(), IS_NOT_SET, topologyIdJmxAttribute); + JmxAttributeValidationException.checkNotNull(getListenAddress(), IS_NOT_SET, listenAddressJmxAttribute); + JmxAttributeValidationException.checkNotNull(getListenPort(), IS_NOT_SET, listenPortJmxAttribute); + JmxAttributeValidationException.checkNotNull(getStatefulPlugin(), IS_NOT_SET, statefulPluginJmxAttribute); final KeyMapping keys = contructKeys(); if (!keys.isEmpty()) { diff --git a/programming/impl/src/main/java/org/opendaylight/controller/config/yang/programming/impl/InstructionSchedulerImplModule.java b/programming/impl/src/main/java/org/opendaylight/controller/config/yang/programming/impl/InstructionSchedulerImplModule.java index 4f73a4d9d5..3962fe810a 100644 --- a/programming/impl/src/main/java/org/opendaylight/controller/config/yang/programming/impl/InstructionSchedulerImplModule.java +++ b/programming/impl/src/main/java/org/opendaylight/controller/config/yang/programming/impl/InstructionSchedulerImplModule.java @@ -19,9 +19,7 @@ package org.opendaylight.controller.config.yang.programming.impl; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListeningExecutorService; import com.google.common.util.concurrent.MoreExecutors; - import java.util.concurrent.Executors; - import org.opendaylight.bgpcep.programming.impl.ProgrammingServiceImpl; import org.opendaylight.bgpcep.programming.spi.Instruction; import org.opendaylight.bgpcep.programming.spi.InstructionScheduler; @@ -62,7 +60,7 @@ public final class InstructionSchedulerImplModule extends final class ProgrammingServiceImplCloseable implements InstructionScheduler, AutoCloseable { @Override - public void close() throws Exception { + public void close() { try { reg.close(); } finally { diff --git a/util/src/main/java/org/opendaylight/protocol/util/ByteArray.java b/util/src/main/java/org/opendaylight/protocol/util/ByteArray.java index bd58afae1e..83713c3420 100644 --- a/util/src/main/java/org/opendaylight/protocol/util/ByteArray.java +++ b/util/src/main/java/org/opendaylight/protocol/util/ByteArray.java @@ -91,8 +91,7 @@ public final class ByteArray { * @return a new byte array that is a sub-array of the original */ public static byte[] subByte(final byte[] bytes, final int startIndex, final int length) { - if (bytes.length == 0 || length < 0 || length > bytes.length || startIndex < 0 || startIndex > bytes.length - || startIndex + length > bytes.length) { + if (!checkLength(bytes, length) || !checkStartIndex(bytes, startIndex, length)) { throw new IllegalArgumentException("Cannot create subByte, invalid arguments: Length: " + length + " startIndex: " + startIndex); } final byte[] res = new byte[length]; @@ -100,6 +99,14 @@ public final class ByteArray { return res; } + private static boolean checkLength(final byte[] bytes, final int length) { + return length > 0 && bytes.length > 0 && length <= bytes.length; + } + + private static boolean checkStartIndex(final byte[] bytes, final int startIndex, final int length) { + return startIndex >= 0 && startIndex < bytes.length && (startIndex + length <= bytes.length); + } + /** * Converts byte array to Integer. If there are less bytes in the array as required (4), the method will push * adequate number of zero bytes prepending given byte array. -- 2.36.6