Enforce findbug and checkstyle 69/66769/2
authorClaudio D. Gasparini <claudio.gasparini@pantheon.tech>
Sat, 23 Dec 2017 22:23:45 +0000 (23:23 +0100)
committerClaudio D. Gasparini <claudio.gasparini@pantheon.tech>
Thu, 28 Dec 2017 22:01:41 +0000 (23:01 +0100)
under programming impl

Change-Id: I46db1e8dbf0c94ad8640af15b5bbe25e30ff8559
Signed-off-by: Claudio D. Gasparini <claudio.gasparini@pantheon.tech>
programming/impl/pom.xml
programming/impl/src/main/java/org/opendaylight/bgpcep/programming/impl/ProgrammingServiceImpl.java

index f9023bf9e95a77371e935666360718dad2bdb1f0..da9daf4bc7024332df938f1d7108473d2ec23726 100644 (file)
                     <propertyExpansion>checkstyle.violationSeverity=error</propertyExpansion>
                 </configuration>
             </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>findbugs-maven-plugin</artifactId>
+                <configuration>
+                    <failOnError>true</failOnError>
+                </configuration>
+            </plugin>
         </plugins>
     </build>
 
index f8d67581074f441b5e8a8b9dbbefeb55b0ca3325..a8c096d891fbcf1e4f0a50ed56a9c1d1c3deeeee 100644 (file)
@@ -25,6 +25,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
+import javax.annotation.concurrent.GuardedBy;
 import org.opendaylight.bgpcep.programming.NanotimeUtil;
 import org.opendaylight.bgpcep.programming.spi.ExecutionResult;
 import org.opendaylight.bgpcep.programming.spi.Instruction;
@@ -85,7 +86,9 @@ public final class ProgrammingServiceImpl implements AutoCloseable, ClusterSingl
     private final ServiceGroupIdentifier sgi;
     private final ClusterSingletonServiceRegistration csspReg;
     private final RpcProviderRegistry rpcProviderRegistry;
+    @GuardedBy("this")
     private RpcRegistration<ProgrammingService> reg;
+    @GuardedBy("this")
     private ServiceRegistration<?> serviceRegistration;
 
     private final class InstructionPusher implements QueueInstruction {
@@ -168,7 +171,7 @@ public final class ProgrammingServiceImpl implements AutoCloseable, ClusterSingl
     }
 
     @Override
-    public void instantiateServiceInstance() {
+    public synchronized void instantiateServiceInstance() {
         LOG.info("Instruction Queue service {} instantiated", this.sgi.getValue());
         this.reg = this.rpcProviderRegistry.addRpcImplementation(ProgrammingService.class, this);
 
@@ -411,7 +414,10 @@ public final class ProgrammingServiceImpl implements AutoCloseable, ClusterSingl
     public synchronized ListenableFuture<Void> closeServiceInstance() {
         LOG.info("Closing Instruction Queue service {}", this.sgi.getValue());
 
-        this.reg.close();
+        if (this.reg != null) {
+            this.reg.close();
+            this.reg = null;
+        }
         for (final InstructionImpl instruction : this.insns.values()) {
             instruction.tryCancel(null);
         }