SONAR suggestions - concurrent access to static fields

Change-Id: I368c17d988ce70365b090bb420f59d50ff4eff67
diff --git a/apps/acl/src/main/java/org/onosproject/acl/AclRule.java b/apps/acl/src/main/java/org/onosproject/acl/AclRule.java
index ff01aa4..02b7025 100644
--- a/apps/acl/src/main/java/org/onosproject/acl/AclRule.java
+++ b/apps/acl/src/main/java/org/onosproject/acl/AclRule.java
@@ -44,6 +44,7 @@
     private final Action action;
 
     protected static IdGenerator idGenerator;
+    private static final Object ID_GENERATOR_LOCK = new Object();
 
     /**
      * Enum type for ACL rule's action.
@@ -75,8 +76,10 @@
      */
     private AclRule(Ip4Prefix srcIp, Ip4Prefix dstIp, byte ipProto,
                     short dstTpPort, Action action) {
-        checkState(idGenerator != null, "Id generator is not bound.");
-        this.id = RuleId.valueOf(idGenerator.getNewId());
+        synchronized (ID_GENERATOR_LOCK) {
+            checkState(idGenerator != null, "Id generator is not bound.");
+            this.id = RuleId.valueOf(idGenerator.getNewId());
+        }
         this.srcIp = srcIp;
         this.dstIp = dstIp;
         this.ipProto = ipProto;
@@ -225,8 +228,10 @@
      * @param newIdGenerator id generator
      */
     public static void bindIdGenerator(IdGenerator newIdGenerator) {
-        checkState(idGenerator == null, "Id generator is already bound.");
-        idGenerator = checkNotNull(newIdGenerator);
+        synchronized (ID_GENERATOR_LOCK) {
+            checkState(idGenerator == null, "Id generator is already bound.");
+            idGenerator = checkNotNull(newIdGenerator);
+        }
     }
 
     public RuleId id() {
diff --git a/apps/simplefabric/src/main/java/org/onosproject/simplefabric/SimpleFabricCommand.java b/apps/simplefabric/src/main/java/org/onosproject/simplefabric/SimpleFabricCommand.java
index e5ed60e..b515259 100644
--- a/apps/simplefabric/src/main/java/org/onosproject/simplefabric/SimpleFabricCommand.java
+++ b/apps/simplefabric/src/main/java/org/onosproject/simplefabric/SimpleFabricCommand.java
@@ -26,8 +26,6 @@
          description = "Manages the SimpleFabric application")
 public class SimpleFabricCommand extends AbstractShellCommand {
 
-    protected static SimpleFabricService simpleFabric;
-
     @Argument(index = 0, name = "command",
               description = "Command: show|intents|reactive-intents|refresh|flush",
               required = true, multiValued = false)
@@ -35,9 +33,9 @@
 
     @Override
     protected void execute() {
-        if (simpleFabric == null) {
-            simpleFabric = get(SimpleFabricService.class);
-        }
+
+        SimpleFabricService simpleFabric = get(SimpleFabricService.class);
+
         if (command == null) {
             print("command not found", command);
             return;
diff --git a/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsNameCompleter.java b/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsNameCompleter.java
index 468d7d6..d3ffb33 100644
--- a/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsNameCompleter.java
+++ b/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsNameCompleter.java
@@ -30,7 +30,7 @@
  */
 public class VplsNameCompleter extends AbstractChoicesCompleter {
 
-    protected static Vpls vpls;
+    protected Vpls vpls;
 
     @Override
     public List<String> choices() {