More review comments. Fix concurrency issue.
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv4Address.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv4Address.java
index 2505d56..a75c2ee 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv4Address.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv4Address.java
@@ -18,8 +18,8 @@
     static final int LENGTH = 4;
     private final int rawValue;
 
-    private static int NOT_A_CIDR_MASK = -1;
-    private static int CIDR_MASK_CACHE_UNSET = -2;
+    private static final int NOT_A_CIDR_MASK = -1;
+    private static final int CIDR_MASK_CACHE_UNSET = -2;
     // Must appear before the static IPv4Address constant assignments
     private volatile int cidrMaskLengthCache = CIDR_MASK_CACHE_UNSET;
 
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv6Address.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv6Address.java
index b69035c..4e7b856 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv6Address.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv6Address.java
@@ -18,8 +18,8 @@
     private final long raw1;
     private final long raw2;
 
-    private static int NOT_A_CIDR_MASK = -1;
-    private static int CIDR_MASK_CACHE_UNSET = -2;
+    private static final int NOT_A_CIDR_MASK = -1;
+    private static final int CIDR_MASK_CACHE_UNSET = -2;
     // Must appear before the static IPv4Address constant assignments
     private volatile int cidrMaskLengthCache = CIDR_MASK_CACHE_UNSET;
 
@@ -46,7 +46,7 @@
         long mask = raw;
         if (raw == 0)
             return 0;
-        else if (Long.bitCount((~mask) + 1L) == 1L) {
+        else if (Long.bitCount((~mask) + 1) == 1) {
             // represent a true CIDR prefix length
             return Long.bitCount(mask);
         }
@@ -58,19 +58,19 @@
 
     private int asCidrMaskLengthInternal() {
         if (cidrMaskLengthCache == CIDR_MASK_CACHE_UNSET) {
-            synchronized (this) {
-                if (raw1 == 0 && raw2 == 0) {
-                    cidrMaskLengthCache = 0;
-                } else if (raw1 == -1) {
-                    // top half is all 1 bits
-                    cidrMaskLengthCache = computeCidrMask64(raw2);
-                    if (cidrMaskLengthCache != NOT_A_CIDR_MASK)
-                        cidrMaskLengthCache += 64;
-                } else if (raw2 == 0) {
-                    cidrMaskLengthCache = computeCidrMask64(raw1);
-                } else {
-                    cidrMaskLengthCache = NOT_A_CIDR_MASK;
-                }
+            // No synchronization needed. Writing cidrMaskLengthCache only once
+            if (raw1 == 0 && raw2 == 0) {
+                cidrMaskLengthCache = 0;
+            } else if (raw1 == -1L) {
+                // top half is all 1 bits
+                int tmpLength = computeCidrMask64(raw2);
+                if (tmpLength != NOT_A_CIDR_MASK)
+                    tmpLength += 64;
+                cidrMaskLengthCache = tmpLength;
+            } else if (raw2 == 0) {
+                cidrMaskLengthCache = computeCidrMask64(raw1);
+            } else {
+                cidrMaskLengthCache = NOT_A_CIDR_MASK;
             }
         }
         return cidrMaskLengthCache;