Sonar suggestion - don't lock on a potentially shared Object
Long values can be pooled and result in unwanted locking dependencies.
Created a specific unshared lock object.
Change-Id: Icd0035b5d27d564c9ac2f477eff9382b51d06edf
diff --git a/apps/routing-api/src/main/java/org/onosproject/routing/config/RoutingConfiguration.java b/apps/routing-api/src/main/java/org/onosproject/routing/config/RoutingConfiguration.java
index fd0d608..2b312ab 100644
--- a/apps/routing-api/src/main/java/org/onosproject/routing/config/RoutingConfiguration.java
+++ b/apps/routing-api/src/main/java/org/onosproject/routing/config/RoutingConfiguration.java
@@ -77,6 +77,7 @@
.build();
private static Integer registrations = 0;
+ private static final Object REGISTRATIONS_LOCK = new Object();
private RoutingConfiguration() {
// make checkstyle happy
@@ -88,7 +89,7 @@
* @param registry network config registry service
*/
public static void register(NetworkConfigRegistry registry) {
- synchronized (registrations) {
+ synchronized (REGISTRATIONS_LOCK) {
if (registrations == 0) {
factories.forEach(registry::registerConfigFactory);
}
@@ -107,7 +108,7 @@
* @param registry network config registry service
*/
public static void unregister(NetworkConfigRegistry registry) {
- synchronized (registrations) {
+ synchronized (REGISTRATIONS_LOCK) {
registrations--;
if (registrations == 0) {
factories.forEach(registry::unregisterConfigFactory);