diff --git a/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/IpDevice.java b/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/IpDevice.java
index d589237..aae1ffa 100644
--- a/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/IpDevice.java
+++ b/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/IpDevice.java
@@ -34,7 +34,7 @@
         /**
          * Signifies that the device is non-pseudo device.
          */
-        NONPSEUDO;
+        NONPSEUDO
     }
 
     /**
diff --git a/apps/kafka-integration/api/src/main/java/org/onosproject/kafkaintegration/api/dto/OnosEvent.java b/apps/kafka-integration/api/src/main/java/org/onosproject/kafkaintegration/api/dto/OnosEvent.java
index 72fa028..3f4993a 100644
--- a/apps/kafka-integration/api/src/main/java/org/onosproject/kafkaintegration/api/dto/OnosEvent.java
+++ b/apps/kafka-integration/api/src/main/java/org/onosproject/kafkaintegration/api/dto/OnosEvent.java
@@ -45,6 +45,6 @@
         /**
          * Signifies Link events.
          */
-        LINK;
+        LINK
     }
 }
diff --git a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/instructions/ActionMappingInstruction.java b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/instructions/ActionMappingInstruction.java
index 8c49988..9a17f9d 100644
--- a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/instructions/ActionMappingInstruction.java
+++ b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/instructions/ActionMappingInstruction.java
@@ -45,7 +45,7 @@
         /**
          * Signifies that the traffic should be dropped.
          */
-        DROP;
+        DROP
     }
 
     public abstract ActionType subtype();
diff --git a/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/pwaas/L2Mode.java b/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/pwaas/L2Mode.java
index fe0a6b3..9e34100 100644
--- a/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/pwaas/L2Mode.java
+++ b/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/pwaas/L2Mode.java
@@ -28,5 +28,5 @@
      * Tagged mode. In this case the packet need
      * the sd tag.
      */
-    TAGGED;
+    TAGGED
 }
diff --git a/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/pwaas/L2TunnelHandler.java b/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/pwaas/L2TunnelHandler.java
index dc6bcfc..74ddae5 100644
--- a/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/pwaas/L2TunnelHandler.java
+++ b/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/pwaas/L2TunnelHandler.java
@@ -1280,7 +1280,7 @@
         /**
          * The reverse direction of the pseudo wire.
          */
-        REV;
+        REV
     }
 
 }
diff --git a/apps/tetopology/api/src/main/java/org/onosproject/tetopology/management/api/TeTopologyEvent.java b/apps/tetopology/api/src/main/java/org/onosproject/tetopology/management/api/TeTopologyEvent.java
index 25bca39..7d44f75 100644
--- a/apps/tetopology/api/src/main/java/org/onosproject/tetopology/management/api/TeTopologyEvent.java
+++ b/apps/tetopology/api/src/main/java/org/onosproject/tetopology/management/api/TeTopologyEvent.java
@@ -130,7 +130,7 @@
         /**
          * Designates removal of a TE link.
          */
-        TE_LINK_REMOVED;
+        TE_LINK_REMOVED
     }
 
     /**
diff --git a/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/VirtualPort.java b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/VirtualPort.java
index 7d70cfd..99787cb 100644
--- a/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/VirtualPort.java
+++ b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/VirtualPort.java
@@ -37,7 +37,7 @@
         /**
          * Signifies that a virtualPort is currently unavailable.
          */
-        DOWN;
+        DOWN
     }
 
     /**
diff --git a/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraEncapEthDst.java b/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraEncapEthDst.java
index 1f98825..e72d359 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraEncapEthDst.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraEncapEthDst.java
@@ -35,7 +35,7 @@
     private MacAddress encapEthDst;
 
     private final KryoNamespace appKryo = new KryoNamespace.Builder()
-    .register(new MacAddressSerializer(), MacAddress.class).register(byte[].class).build();;
+    .register(new MacAddressSerializer(), MacAddress.class).register(byte[].class).build();
 
     /**
      * Creates a new nshEncapEthDst instruction.
diff --git a/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraEncapEthSrc.java b/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraEncapEthSrc.java
index 7ecc1e8..a7a85fe 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraEncapEthSrc.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraEncapEthSrc.java
@@ -35,7 +35,7 @@
     private MacAddress encapEthSrc;
 
     private final KryoNamespace appKryo = new KryoNamespace.Builder()
-    .register(new MacAddressSerializer(), MacAddress.class).register(byte[].class).build();;
+    .register(new MacAddressSerializer(), MacAddress.class).register(byte[].class).build();
 
     /**
      * Creates a new nshEncapEthSrc instruction.
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/elasticcfg/TraversalMode.java b/incubator/api/src/main/java/org/onosproject/incubator/elasticcfg/TraversalMode.java
index bbdb2bc..2f1b37d 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/elasticcfg/TraversalMode.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/elasticcfg/TraversalMode.java
@@ -28,5 +28,5 @@
     /**
      * Tree will NOT be traversed.
      */
-    NON_RECURSIVE;
+    NON_RECURSIVE
 }
\ No newline at end of file
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/faultmanagement/alarm/Alarm.java b/incubator/api/src/main/java/org/onosproject/incubator/net/faultmanagement/alarm/Alarm.java
index 8257082..301e8d3 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/faultmanagement/alarm/Alarm.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/faultmanagement/alarm/Alarm.java
@@ -204,7 +204,7 @@
          * correct the problem in order to prevent it from becoming a more
          * serious service affecting fault.
          */
-        WARNING;
+        WARNING
 
     }
 
diff --git a/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpPeerImpl.java b/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpPeerImpl.java
index 40048bc..44c3bff 100644
--- a/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpPeerImpl.java
+++ b/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpPeerImpl.java
@@ -449,7 +449,7 @@
     @Override
     public final void setConnected(boolean connected) {
         this.connected = connected;
-    };
+    }
 
     @Override
     public final void setChannel(Channel channel) {
@@ -464,12 +464,12 @@
                 channelId = '[' + ipAddress.toString() + "]:" + inetAddress.getPort();
             }
         }
-    };
+    }
 
     @Override
     public final Channel getChannel() {
         return this.channel;
-    };
+    }
 
     @Override
     public String channelId() {
diff --git a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2MatchParam.java b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2MatchParam.java
index 15c750f..5ff1316 100644
--- a/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2MatchParam.java
+++ b/protocols/bmv2/api/src/main/java/org/onosproject/bmv2/api/runtime/Bmv2MatchParam.java
@@ -50,6 +50,6 @@
         /**
          * Valid match type.
          */
-        VALID;
+        VALID
     }
 }
diff --git a/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/util/OspfLinkType.java b/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/util/OspfLinkType.java
index 1d229fb..ce3d3e1 100644
--- a/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/util/OspfLinkType.java
+++ b/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/util/OspfLinkType.java
@@ -38,5 +38,5 @@
     /**
      * Indicates a Virtual link to another area border router.
      */
-    VIRTUAL_LINK;
+    VIRTUAL_LINK
 }
\ No newline at end of file
diff --git a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepClientImpl.java b/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepClientImpl.java
index 927b4c7..b3bc3d4 100644
--- a/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepClientImpl.java
+++ b/protocols/pcep/ctl/src/main/java/org/onosproject/pcep/controller/impl/PcepClientImpl.java
@@ -132,7 +132,7 @@
     @Override
     public final void setConnected(boolean connected) {
         this.connected = connected;
-    };
+    }
 
     @Override
     public final void setChannel(Channel channel) {
@@ -147,7 +147,7 @@
                 channelId = '[' + ipAddress.toString() + "]:" + inetAddress.getPort();
             }
         }
-    };
+    }
 
     @Override
     public String channelId() {
diff --git a/utils/misc/src/main/java/org/onlab/packet/Ethernet.java b/utils/misc/src/main/java/org/onlab/packet/Ethernet.java
index a0e07e9..e317818 100644
--- a/utils/misc/src/main/java/org/onlab/packet/Ethernet.java
+++ b/utils/misc/src/main/java/org/onlab/packet/Ethernet.java
@@ -48,7 +48,7 @@
     public static final short TYPE_VLAN = EthType.EtherType.VLAN.ethType().toShort();
     public static final short TYPE_BSN = EthType.EtherType.BDDP.ethType().toShort();
 
-    public static final short MPLS_UNICAST = EthType.EtherType.MPLS_UNICAST.ethType().toShort();;
+    public static final short MPLS_UNICAST = EthType.EtherType.MPLS_UNICAST.ethType().toShort();
     public static final short MPLS_MULTICAST = EthType.EtherType.MPLS_MULTICAST.ethType().toShort();
 
 
diff --git a/utils/misc/src/main/java/org/onlab/packet/IpAddress.java b/utils/misc/src/main/java/org/onlab/packet/IpAddress.java
index d992e52..10ccf8f 100644
--- a/utils/misc/src/main/java/org/onlab/packet/IpAddress.java
+++ b/utils/misc/src/main/java/org/onlab/packet/IpAddress.java
@@ -35,7 +35,7 @@
     private static final int BIT_MASK = 0x000000ff;
 
     // IP Versions
-    public enum Version { INET, INET6 };
+    public enum Version { INET, INET6 }
 
     // lengths of address, in bytes
     public static final int INET_BYTE_LENGTH = 4;
