Fix findbug issues under pcep modules 24/66924/3
authorClaudio D. Gasparini <claudio.gasparini@pantheon.tech>
Sun, 7 Jan 2018 22:06:47 +0000 (23:06 +0100)
committerClaudio D. Gasparini <claudio.gasparini@pantheon.tech>
Mon, 8 Jan 2018 13:30:25 +0000 (14:30 +0100)
Change-Id: Ia1fd4067479bc0bbdc8242ef7cc111394b62c059
Signed-off-by: Claudio D. Gasparini <claudio.gasparini@pantheon.tech>
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/PCEPProtocolSessionPromise.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/PCEPSessionImpl.java
pcep/pcc-mock/src/main/java/org/opendaylight/protocol/pcep/pcc/mock/Main.java
pcep/pcc-mock/src/main/java/org/opendaylight/protocol/pcep/pcc/mock/PCCTunnelBuilder.java
pcep/pcc-mock/src/main/java/org/opendaylight/protocol/pcep/pcc/mock/PCCTunnelManagerImpl.java
pcep/pcc-mock/src/main/java/org/opendaylight/protocol/pcep/pcc/mock/api/PCCDispatcher.java
pcep/pcc-mock/src/main/java/org/opendaylight/protocol/pcep/pcc/mock/protocol/PCCDispatcherImpl.java
pcep/testtool/src/main/java/org/opendaylight/protocol/pcep/testtool/Main.java

index b82e87082af3de461cb738d3ca033f9a4224ad47..23ffe7990d071305baebb0735321946fb12b1e27 100755 (executable)
@@ -58,7 +58,7 @@ public final class PCEPProtocolSessionPromise<S extends PCEPSession> extends Def
             this.b.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, this.connectTimeout);
             this.b.remoteAddress(this.address);
             final ChannelFuture connectFuture = this.b.connect();
-            connectFuture.addListener(new BootstrapConnectListener(lock));
+            connectFuture.addListener(new BootstrapConnectListener());
             this.pending = connectFuture;
         } catch (Exception e) {
             LOG.info("Failed to connect to {}", this.address, e);
@@ -83,41 +83,44 @@ public final class PCEPProtocolSessionPromise<S extends PCEPSession> extends Def
     }
 
     private class BootstrapConnectListener implements ChannelFutureListener {
-        private final Object lock;
-
-        public BootstrapConnectListener(final Object lock) {
-            this.lock = lock;
-        }
-
         @Override
         public void operationComplete(final ChannelFuture cf) throws Exception {
-            synchronized (this.lock) {
-                PCEPProtocolSessionPromise.LOG.debug("Promise {} connection resolved", this.lock);
+            synchronized (PCEPProtocolSessionPromise.this) {
+                PCEPProtocolSessionPromise.LOG.debug("Promise {} connection resolved",
+                        PCEPProtocolSessionPromise.this);
                 Preconditions.checkState(PCEPProtocolSessionPromise.this.pending.equals(cf));
                 if (PCEPProtocolSessionPromise.this.isCancelled()) {
                     if (cf.isSuccess()) {
-                        PCEPProtocolSessionPromise.LOG.debug("Closing channel for cancelled promise {}", this.lock);
+                        PCEPProtocolSessionPromise.LOG.debug("Closing channel for cancelled promise {}",
+                                PCEPProtocolSessionPromise.this);
                         cf.channel().close();
                     }
                 } else if (cf.isSuccess()) {
-                    PCEPProtocolSessionPromise.LOG.debug("Promise {} connection successful", this.lock);
+                    PCEPProtocolSessionPromise.LOG.debug("Promise {} connection successful",
+                            PCEPProtocolSessionPromise.this);
                 } else {
-                    PCEPProtocolSessionPromise.LOG.debug("Attempt to connect to {} failed", PCEPProtocolSessionPromise.this.address, cf.cause());
+                    PCEPProtocolSessionPromise.LOG.debug("Attempt to connect to {} failed", 
+                            PCEPProtocolSessionPromise.this.address, cf.cause());
 
                     if (PCEPProtocolSessionPromise.this.retryTimer == 0) {
-                        PCEPProtocolSessionPromise.LOG.debug("Retry timer value is 0. Reconnection will not be attempted");
+                        PCEPProtocolSessionPromise.LOG
+                                .debug("Retry timer value is 0. Reconnection will not be attempted");
                         PCEPProtocolSessionPromise.this.setFailure(cf.cause());
                         return;
                     }
 
                     final EventLoop loop = cf.channel().eventLoop();
                     loop.schedule(() -> {
-                        PCEPProtocolSessionPromise.LOG.debug("Attempting to connect to {}", PCEPProtocolSessionPromise.this.address);
-                        final Future<Void> reconnectFuture = PCEPProtocolSessionPromise.this.b.connect();
-                        reconnectFuture.addListener(BootstrapConnectListener.this);
-                        PCEPProtocolSessionPromise.this.pending = reconnectFuture;
+                        synchronized (PCEPProtocolSessionPromise.this) {
+                            PCEPProtocolSessionPromise.LOG.debug("Attempting to connect to {}",
+                                    PCEPProtocolSessionPromise.this.address);
+                            final Future<Void> reconnectFuture = PCEPProtocolSessionPromise.this.b.connect();
+                            reconnectFuture.addListener(BootstrapConnectListener.this);
+                            PCEPProtocolSessionPromise.this.pending = reconnectFuture;
+                        }
                     }, PCEPProtocolSessionPromise.this.retryTimer, TimeUnit.SECONDS);
-                    PCEPProtocolSessionPromise.LOG.debug("Next reconnection attempt in {}s", PCEPProtocolSessionPromise.this.retryTimer);
+                    PCEPProtocolSessionPromise.LOG.debug("Next reconnection attempt in {}s",
+                            PCEPProtocolSessionPromise.this.retryTimer);
                 }
             }
         }
index d16794d6b69fe7cd431ddbb7a418dbc438dc7edb..8fe8525b957e4921d772a1b99dd7739a576a036b 100644 (file)
@@ -301,13 +301,13 @@ public class PCEPSessionImpl extends SimpleChannelInboundHandler<Message> implem
      * @param error documented error in RFC5440 or draft
      */
     @VisibleForTesting
-    public void handleMalformedMessage(final PCEPErrors error) {
+    void handleMalformedMessage(final PCEPErrors error) {
         final long ct = TICKER.read();
         this.sendErrorMessage(error);
         if (error == PCEPErrors.CAPABILITY_NOT_SUPPORTED) {
             this.unknownMessagesTimes.add(ct);
             while (ct - this.unknownMessagesTimes.peek() > MINUTE) {
-                this.unknownMessagesTimes.poll();
+                final Long poll = this.unknownMessagesTimes.poll();
             }
             if (this.unknownMessagesTimes.size() > this.maxUnknownMessages) {
                 this.terminate(TerminationReason.TOO_MANY_UNKNOWN_MSGS);
index c2c04d81c028dec7f4957e89c7a764b328918e9d..12cf98d92251903866e49a18b7700c5f5f55c570 100755 (executable)
@@ -73,10 +73,10 @@ public final class Main {
                     remoteAddress = InetSocketAddressUtil.parseAddresses(args[++argIdx], DEFAULT_REMOTE_PORT);
                     break;
                 case "--pcc":
-                    pccCount = Integer.valueOf(args[++argIdx]);
+                    pccCount = Integer.parseInt(args[++argIdx]);
                     break;
                 case "--lsp":
-                    lsps = Integer.valueOf(args[++argIdx]);
+                    lsps = Integer.parseInt(args[++argIdx]);
                     break;
                 case "--pcerr":
                     pcError = true;
@@ -96,20 +96,20 @@ public final class Main {
                     password = args[++argIdx];
                     break;
                 case "--reconnect":
-                    reconnectTime = Integer.valueOf(args[++argIdx]);
+                    reconnectTime = Integer.parseInt(args[++argIdx]);
                     break;
                 case "--redelegation-timeout":
-                    redelegationTimeout = Integer.valueOf(args[++argIdx]);
+                    redelegationTimeout = Integer.parseInt(args[++argIdx]);
                     break;
                 case "--state-timeout":
-                    stateTimeout = Integer.valueOf(args[++argIdx]);
+                    stateTimeout = Integer.parseInt(args[++argIdx]);
                     break;
                 case "--state-sync-avoidance":
                     //"--state-sync-avoidance 10, 5, 10
                     includeDbv = Boolean.TRUE;
                     final Long dbVersionAfterReconnect = Long.valueOf(args[++argIdx]);
-                    disonnectAfterXSeconds = Integer.valueOf(args[++argIdx]);
-                    reconnectAfterXSeconds = Integer.valueOf(args[++argIdx]);
+                    disonnectAfterXSeconds = Integer.parseInt(args[++argIdx]);
+                    reconnectAfterXSeconds = Integer.parseInt(args[++argIdx]);
                     syncOptDBVersion = BigInteger.valueOf(dbVersionAfterReconnect);
                     break;
                 case "--incremental-sync-procedure":
@@ -118,8 +118,8 @@ public final class Main {
                     incrementalSync = Boolean.TRUE;
                     //Version of database to be used after restart
                     final Long initialDbVersionAfterReconnect = Long.valueOf(args[++argIdx]);
-                    disonnectAfterXSeconds = Integer.valueOf(args[++argIdx]);
-                    reconnectAfterXSeconds = Integer.valueOf(args[++argIdx]);
+                    disonnectAfterXSeconds = Integer.parseInt(args[++argIdx]);
+                    reconnectAfterXSeconds = Integer.parseInt(args[++argIdx]);
                     syncOptDBVersion = BigInteger.valueOf(initialDbVersionAfterReconnect);
                     break;
                 case "--triggered-initial-sync":
@@ -136,14 +136,17 @@ public final class Main {
         }
 
         if (incrementalSync) {
-            Preconditions.checkArgument(syncOptDBVersion.intValue() > lsps, "Synchronization Database Version which will be used after " +
+            Preconditions.checkArgument(syncOptDBVersion.intValue() > lsps,
+                    "Synchronization Database Version which will be used after " +
                 "reconnectes requires to be higher than lsps");
         }
 
         final Optional<BigInteger> dBVersion = Optional.fromNullable(syncOptDBVersion);
-        final PCCsBuilder pccs = new PCCsBuilder(lsps, pcError, pccCount, localAddress, remoteAddress, ka, dt, password, reconnectTime, redelegationTimeout,
+        final PCCsBuilder pccs = new PCCsBuilder(lsps, pcError, pccCount, localAddress, remoteAddress, ka, dt,
+                password, reconnectTime, redelegationTimeout,
             stateTimeout, getCapabilities());
-        final TimerHandler timerHandler = new TimerHandler(pccs, dBVersion, disonnectAfterXSeconds, reconnectAfterXSeconds);
+        final TimerHandler timerHandler = new TimerHandler(pccs, dBVersion, disonnectAfterXSeconds,
+                reconnectAfterXSeconds);
         pccs.createPCCs(BigInteger.valueOf(lsps), Optional.fromNullable(timerHandler));
         if (!triggeredInitSync) {
             timerHandler.createDisconnectTask();
@@ -154,7 +157,8 @@ public final class Main {
         if (triggeredInitSync) {
             Preconditions.checkArgument(includeDbv);
         }
-        return new PCEPStatefulCapability(true, true, true, triggeredInitSync, triggeredResync, incrementalSync, includeDbv);
+        return new PCEPStatefulCapability(true, true, true, triggeredInitSync, triggeredResync,
+                incrementalSync, includeDbv);
     }
 
     private static ch.qos.logback.classic.Logger getRootLogger(final LoggerContext lc) {
index a1d2dd17d2c28edf1a19819ee87e89f8ab3cdd48..c361f2e65718af21f7c623243110a009f10ddb96 100644 (file)
@@ -13,6 +13,7 @@ import static org.opendaylight.protocol.pcep.pcc.mock.spi.MsgBuilderUtil.createP
 import com.google.common.collect.Lists;
 import java.util.HashMap;
 import java.util.Map;
+import javax.annotation.Nonnull;
 import org.opendaylight.protocol.pcep.pcc.mock.api.LspType;
 import org.opendaylight.protocol.pcep.pcc.mock.spi.MsgBuilderUtil;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
@@ -23,7 +24,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.basic.explicit.route.subobjects.subobject.type.IpPrefixCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.basic.explicit.route.subobjects.subobject.type.ip.prefix._case.IpPrefixBuilder;
 
-public final class PCCTunnelBuilder {
+final class PCCTunnelBuilder {
     private static final Subobject DEFAULT_ENDPOINT_HOP = getDefaultEROEndpointHop();
     private static final String ENDPOINT_ADDRESS = "1.1.1.1";
     private static final String ENDPOINT_PREFIX = ENDPOINT_ADDRESS + "/32";
@@ -33,7 +34,8 @@ public final class PCCTunnelBuilder {
         throw new UnsupportedOperationException();
     }
 
-    public static Map<PlspId, PCCTunnel> createTunnels(final String address, final int lsps) {
+    @Nonnull
+    static Map<PlspId, PCCTunnel> createTunnels(final String address, final int lsps) {
         final Map<PlspId, PCCTunnel> tunnels = new HashMap<>();
         for (int i = 1; i <= lsps; i++) {
             final PCCTunnel tunnel = new PCCTunnel(MsgBuilderUtil.getDefaultPathName(address, i), PCC_DELEGATION, LspType.PCC_LSP,
index a68a7d284e6f51c5c175e46dde694477b9c326f4..58d8b016db1fb72789150bd64c64087b662c40bf 100644 (file)
@@ -256,17 +256,18 @@ public final class PCCTunnelManagerImpl implements PCCTunnelManager {
     }
 
     private Tlvs buildTlvs(final PCCTunnel tunnel, final Long plspId, final Optional<List<Subobject>> subobjectsList) {
-        final List<Subobject> subObject = subobjectsList.isPresent() ? subobjectsList.get() : tunnel.getLspState().getEro().getSubobject();
+        final List<Subobject> subObject = subobjectsList.isPresent() ? subobjectsList.get() :
+                tunnel.getLspState().getEro().getSubobject();
         final String destinationAddress = getDestinationAddress(subObject, this.address);
 
-        return createLspTlvs(plspId, true, destinationAddress, this.address, this.address, Optional.of(tunnel.getPathName()),
-            this.syncOptimization.incrementLspDBVersion());
+        return createLspTlvs(plspId, true, destinationAddress, this.address, this.address,
+                Optional.of(tunnel.getPathName()), this.syncOptimization.incrementLspDBVersion());
     }
 
-    private void lazyTunnelInicialization() {
+    private synchronized void lazyTunnelInicialization() {
         if (this.tunnels.isEmpty()) {
             final BigInteger dbV = this.syncOptimization.getLocalLspDbVersionValue();
-            if (this.syncOptimization.isSyncAvoidanceEnabled() && !((dbV != null) && dbV.equals(BigInteger.ONE))) {
+            if (dbV != null && this.syncOptimization.isSyncAvoidanceEnabled() && !dbV.equals(BigInteger.ONE)) {
                 this.tunnels.putAll(PCCTunnelBuilder.createTunnels(this.address, dbV.intValue()));
             } else {
                 this.tunnels.putAll(PCCTunnelBuilder.createTunnels(this.address, this.lspsCount));
index 4348026c0256bbf21081f4fe7e445d087097f180..9e8134aea6a7f60ab1f97197d210d6b61b50fea2 100644 (file)
@@ -11,6 +11,7 @@ package org.opendaylight.protocol.pcep.pcc.mock.api;
 import io.netty.util.concurrent.Future;
 import java.math.BigInteger;
 import java.net.InetSocketAddress;
+import javax.annotation.Nonnull;
 import org.opendaylight.protocol.concepts.KeyMapping;
 import org.opendaylight.protocol.pcep.PCEPSession;
 import org.opendaylight.protocol.pcep.PCEPSessionListenerFactory;
@@ -18,13 +19,15 @@ import org.opendaylight.protocol.pcep.PCEPSessionNegotiatorFactory;
 
 public interface PCCDispatcher {
 
-    Future<PCEPSession> createClient(final InetSocketAddress remoteAddress,
-            final long reconnectTime, final PCEPSessionListenerFactory listenerFactory,
-            final PCEPSessionNegotiatorFactory<? extends PCEPSession> negotiatorFactory, final KeyMapping keys,
-            final InetSocketAddress localAddress, final BigInteger dbVersion);
+    @Nonnull
+    Future<PCEPSession> createClient(@Nonnull InetSocketAddress remoteAddress,
+            long reconnectTime, @Nonnull PCEPSessionListenerFactory listenerFactory,
+            @Nonnull PCEPSessionNegotiatorFactory<? extends PCEPSession> negotiatorFactory, @Nonnull KeyMapping keys,
+            @Nonnull InetSocketAddress localAddress, @Nonnull BigInteger dbVersion);
 
-    Future<PCEPSession> createClient(final InetSocketAddress remoteAddress,
-                                     final long reconnectTime, final PCEPSessionListenerFactory listenerFactory,
-                                     final PCEPSessionNegotiatorFactory<? extends PCEPSession> negotiatorFactory, final KeyMapping keys,
-                                     final InetSocketAddress localAddress);
+    @Nonnull
+    Future<PCEPSession> createClient(@Nonnull InetSocketAddress remoteAddress,
+            long reconnectTime, @Nonnull PCEPSessionListenerFactory listenerFactory,
+            @Nonnull PCEPSessionNegotiatorFactory<? extends PCEPSession> negotiatorFactory, @Nonnull KeyMapping keys,
+            @Nonnull InetSocketAddress localAddress);
 }
index c4ddce7b9ba2af144ac5c6b27a9c2bbe088d3a50..d6645c55bdbfaeaee08984ca67437f5cb3316aa0 100755 (executable)
@@ -27,7 +27,6 @@ import java.math.BigInteger;
 import java.net.InetSocketAddress;
 import java.util.concurrent.ExecutionException;
 import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 import org.opendaylight.protocol.concepts.KeyMapping;
 import org.opendaylight.protocol.pcep.PCEPPeerProposal;
 import org.opendaylight.protocol.pcep.PCEPSession;
@@ -59,26 +58,19 @@ public final class PCCDispatcherImpl implements PCCDispatcher, AutoCloseable {
     }
 
     @Override
-    public Future<PCEPSession> createClient(
-            @Nonnull final InetSocketAddress remoteAddress,
-            final long reconnectTime,
-            @Nonnull final PCEPSessionListenerFactory listenerFactory,
-            @Nonnull final PCEPSessionNegotiatorFactory<? extends PCEPSession> negotiatorFactory,
-            @Nullable final KeyMapping keys,
-            @Nonnull final InetSocketAddress localAddress) {
-        return createClient(remoteAddress, reconnectTime, listenerFactory, negotiatorFactory, keys,
-                localAddress, BigInteger.ONE);
+    public Future<PCEPSession> createClient(final InetSocketAddress remoteAddress, final long reconnectTime,
+            final PCEPSessionListenerFactory listenerFactory,
+            final PCEPSessionNegotiatorFactory<? extends PCEPSession> negotiatorFactory, final KeyMapping keys,
+            final InetSocketAddress localAddress) {
+        return createClient(remoteAddress, reconnectTime, listenerFactory, negotiatorFactory, keys, localAddress,
+                BigInteger.ONE);
     }
 
     @Override
-    public Future<PCEPSession> createClient(
-            @Nonnull final InetSocketAddress remoteAddress,
-            final long reconnectTime,
-            @Nonnull final PCEPSessionListenerFactory listenerFactory,
-            @Nonnull final PCEPSessionNegotiatorFactory negotiatorFactory,
-            @Nullable final KeyMapping keys,
-            @Nonnull final InetSocketAddress localAddress,
-            @Nonnull final BigInteger dbVersion) {
+    @SuppressWarnings("unchecked")
+    public Future<PCEPSession> createClient(final InetSocketAddress remoteAddress, final long reconnectTime,
+            final PCEPSessionListenerFactory listenerFactory, final PCEPSessionNegotiatorFactory negotiatorFactory,
+            final KeyMapping keys, final InetSocketAddress localAddress, final BigInteger dbVersion) {
         final Bootstrap b = new Bootstrap();
         b.group(this.workerGroup);
         b.localAddress(localAddress);
index c9abe9eb47454114eff0758d7c86159c7ca2a1e9..ca961e415765762681904b1ee21d9fd9d5d44c7e 100644 (file)
@@ -96,10 +96,10 @@ public final class Main {
                 address = new InetSocketAddress(InetAddress.getByName(ip[0]), Integer.parseInt(ip[1]));
                 i++;
             } else if (args[i].equalsIgnoreCase("-d") || args[i].equalsIgnoreCase("--deadtimer")) {
-                deadTimerValue = Integer.valueOf(args[i + 1]);
+                deadTimerValue = Integer.parseInt(args[i + 1]);
                 i++;
             } else if (args[i].equalsIgnoreCase("-ka") || args[i].equalsIgnoreCase("--keepalive")) {
-                keepAliveValue = Integer.valueOf(args[i + 1]);
+                keepAliveValue = Integer.parseInt(args[i + 1]);
                 i++;
             } else if (args[i].equalsIgnoreCase("--stateful")) {
                 stateful = true;