diff --git a/apps/artemis/src/main/java/org/onosproject/artemis/impl/ArtemisDeaggregatorImpl.java b/apps/artemis/src/main/java/org/onosproject/artemis/impl/ArtemisDeaggregatorImpl.java
index 5660644..32dbb8a 100644
--- a/apps/artemis/src/main/java/org/onosproject/artemis/impl/ArtemisDeaggregatorImpl.java
+++ b/apps/artemis/src/main/java/org/onosproject/artemis/impl/ArtemisDeaggregatorImpl.java
@@ -465,6 +465,7 @@
 
                         installRules();
                     }
+                    break;
                 }
                 default:
             }
diff --git a/apps/cfm/src/main/java/org/onosproject/cfm/cli/CfmMdListMdCommand.java b/apps/cfm/src/main/java/org/onosproject/cfm/cli/CfmMdListMdCommand.java
index f3c5b6e..6f41005 100644
--- a/apps/cfm/src/main/java/org/onosproject/cfm/cli/CfmMdListMdCommand.java
+++ b/apps/cfm/src/main/java/org/onosproject/cfm/cli/CfmMdListMdCommand.java
@@ -163,6 +163,7 @@
                 break;
             case TWOOCTET:
                 maId = MaId2Octet.asMaId(nameParts[0]);
+                break;
             case CHARACTERSTRING:
             default:
                 maId = MaIdCharStr.asMaId(nameParts[0]);
diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/DhcpRelayManager.java b/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/DhcpRelayManager.java
index 39123ac..2c4b89d 100644
--- a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/DhcpRelayManager.java
+++ b/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/DhcpRelayManager.java
@@ -625,6 +625,7 @@
                     break;
                 case DEVICE_AVAILABILITY_CHANGED:
                     deviceAvailabilityChanged(device);
+                    break;
                 default:
                     break;
             }
diff --git a/apps/intentsync/src/main/java/org/onosproject/intentsync/IntentSynchronizer.java b/apps/intentsync/src/main/java/org/onosproject/intentsync/IntentSynchronizer.java
index 6561bca..c15ea3c 100644
--- a/apps/intentsync/src/main/java/org/onosproject/intentsync/IntentSynchronizer.java
+++ b/apps/intentsync/src/main/java/org/onosproject/intentsync/IntentSynchronizer.java
@@ -305,6 +305,7 @@
                     log.info("IntentSynchronizer leader changed. New leader is {}", event.subject().leaderNodeId());
                     leaderChanged(false);
                 }
+                break;
             default:
                 break;
             }
diff --git a/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/NetL3VpnManager.java b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/NetL3VpnManager.java
index 45e9f9b..b7d4ddd 100644
--- a/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/NetL3VpnManager.java
+++ b/apps/l3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/NetL3VpnManager.java
@@ -1094,6 +1094,7 @@
                                          .leaderNodeId());
                         leaderChanged(false);
                     }
+                    break;
                 default:
                     break;
             }
diff --git a/apps/openstacknetworking/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingHostProvider.java b/apps/openstacknetworking/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingHostProvider.java
index 0e4f7ab..64141b2 100644
--- a/apps/openstacknetworking/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingHostProvider.java
+++ b/apps/openstacknetworking/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingHostProvider.java
@@ -248,6 +248,7 @@
                                 event.subject().id());
                         processPortRemoved(event.port());
                     });
+                    break;
                 default:
                     break;
             }
diff --git a/apps/vpls/src/main/java/org/onosproject/vpls/config/VplsConfigManager.java b/apps/vpls/src/main/java/org/onosproject/vpls/config/VplsConfigManager.java
index d08d9e3..541953e 100644
--- a/apps/vpls/src/main/java/org/onosproject/vpls/config/VplsConfigManager.java
+++ b/apps/vpls/src/main/java/org/onosproject/vpls/config/VplsConfigManager.java
@@ -251,6 +251,7 @@
                     case CONFIG_REMOVED:
                     case CONFIG_UNREGISTERED:
                         vpls.removeAllVpls();
+                        break;
                     default:
                         break;
                 }
diff --git a/drivers/corsa/src/main/java/org/onosproject/drivers/corsa/CorsaPipelineV3.java b/drivers/corsa/src/main/java/org/onosproject/drivers/corsa/CorsaPipelineV3.java
index 3eb6261..347bb44 100644
--- a/drivers/corsa/src/main/java/org/onosproject/drivers/corsa/CorsaPipelineV3.java
+++ b/drivers/corsa/src/main/java/org/onosproject/drivers/corsa/CorsaPipelineV3.java
@@ -118,6 +118,7 @@
                     break;
                 case OUTPUT:
                     isPresentOutpuPort = true;
+                    break;
                 default:
             }
         }
diff --git a/drivers/corsa/src/main/java/org/onosproject/drivers/corsa/CorsaPipelineV39.java b/drivers/corsa/src/main/java/org/onosproject/drivers/corsa/CorsaPipelineV39.java
index 9a684f5..8c9e5e9 100644
--- a/drivers/corsa/src/main/java/org/onosproject/drivers/corsa/CorsaPipelineV39.java
+++ b/drivers/corsa/src/main/java/org/onosproject/drivers/corsa/CorsaPipelineV39.java
@@ -271,6 +271,7 @@
                     break;
                 case OUTPUT:
                     isPresentOutpuPort = true;
+                    break;
                 default:
             }
         }
diff --git a/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraExtensionTreatmentInterpreter.java b/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraExtensionTreatmentInterpreter.java
index 1b9bad8..edc8a1e 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraExtensionTreatmentInterpreter.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraExtensionTreatmentInterpreter.java
@@ -472,25 +472,25 @@
                             case SRC_ARP_SPA:
                                 return NiciraMoveTreatmentFactory
                                         .createNiciraMovArpSpaToTpa();
-                    case NSH_C1:
-                        return NiciraMoveTreatmentFactory.createNiciraMovNshC1ToC1();
-                    case NSH_C2:
-                        if (Long.valueOf(moveAction.getDst()).intValue() == TUN_ID) {
-                            return NiciraMoveTreatmentFactory.createNiciraMovNshC2ToTunId();
-                        }
-                        return NiciraMoveTreatmentFactory.createNiciraMovNshC2ToC2();
-                    case NSH_C3:
-                        return NiciraMoveTreatmentFactory.createNiciraMovNshC3ToC3();
-                    case NSH_C4:
-                        return NiciraMoveTreatmentFactory.createNiciraMovNshC4ToC4();
-                    case TUN_IPV4_DST:
-                        return NiciraMoveTreatmentFactory.createNiciraMovTunDstToTunDst();
-                    case TUN_ID:
-                        return NiciraMoveTreatmentFactory.createNiciraMovTunIdToTunId();
+                            case NSH_C1:
+                                return NiciraMoveTreatmentFactory.createNiciraMovNshC1ToC1();
+                            case NSH_C2:
+                                if (Long.valueOf(moveAction.getDst()).intValue() == TUN_ID) {
+                                    return NiciraMoveTreatmentFactory.createNiciraMovNshC2ToTunId();
+                                }
+                                return NiciraMoveTreatmentFactory.createNiciraMovNshC2ToC2();
+                            case NSH_C3:
+                                return NiciraMoveTreatmentFactory.createNiciraMovNshC3ToC3();
+                            case NSH_C4:
+                                return NiciraMoveTreatmentFactory.createNiciraMovNshC4ToC4();
+                            case TUN_IPV4_DST:
+                                return NiciraMoveTreatmentFactory.createNiciraMovTunDstToTunDst();
+                            case TUN_ID:
+                                return NiciraMoveTreatmentFactory.createNiciraMovTunIdToTunId();
                             default:
                                 throw new UnsupportedOperationException("Driver does not support move from "
-                                + moveAction.getSrc() + " to " + moveAction.getDst() + "of length "
-                                + moveAction.getNBits());
+                                        + moveAction.getSrc() + " to " + moveAction.getDst() + "of length "
+                                        + moveAction.getNBits());
                         }
                     case SUB_TYPE_RESUBMIT:
                         OFActionNiciraResubmit resubmitAction = (OFActionNiciraResubmit) nicira;
diff --git a/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java b/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java
index b007af1..cfaf107 100644
--- a/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java
+++ b/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java
@@ -1471,6 +1471,7 @@
                         if (((OFErrorMsg) msg).getErrType() == OFErrorType.PORT_MOD_FAILED) {
                             LOG.error("port mod failed");
                         }
+                        break;
                     default:
                         break;
                 }
diff --git a/providers/pcep/cli/src/main/java/org/onosproject/pcep/cli/PcepSessionCommand.java b/providers/pcep/cli/src/main/java/org/onosproject/pcep/cli/PcepSessionCommand.java
index 086138e..c46a9a1 100644
--- a/providers/pcep/cli/src/main/java/org/onosproject/pcep/cli/PcepSessionCommand.java
+++ b/providers/pcep/cli/src/main/java/org/onosproject/pcep/cli/PcepSessionCommand.java
@@ -194,8 +194,10 @@
                                     System.out.print(sessionEstablishmentFailureMap.get(sessionFailureKey));
                                 }
                             }
+                            break;
                         case CAPABALITYNOTSUPPORTED:
                             System.out.print("Capability not supported");
+                            break;
                         case UNKNOWNOBJECT:
                             unknownObjectMap =  pcepErrorDetail.unknownObject();
                             Set<Integer> unknownObjectKeySet = unknownObjectMap.keySet();
@@ -204,6 +206,7 @@
                                     System.out.print(unknownObjectMap.get(unknownObjectKey));
                                 }
                             }
+                            break;
                         case NOTSUPPORTEDOBJECT:
                             notSupportedObjectMap =  pcepErrorDetail.notSupportedObject();
                             Set<Integer> notSupportedObjectKeySet = notSupportedObjectMap.keySet();
@@ -212,6 +215,7 @@
                                     System.out.print(notSupportedObjectMap.get(notSupportedObjectKey));
                                 }
                             }
+                            break;
                         case POLICYVIOLATION:
                             policyViolationMap =  pcepErrorDetail.policyViolation();
                             Set<Integer> policyViolationKeySet = policyViolationMap.keySet();
@@ -220,6 +224,7 @@
                                     System.out.print(policyViolationMap.get(policyViolationKey));
                                 }
                             }
+                            break;
                         case MANDATORYOBJECTMISSING:
                             mandatoryObjectMissingMap =  pcepErrorDetail.mandatoryObjectMissing();
                             Set<Integer> mandatoryObjectMissingKeySet = mandatoryObjectMissingMap.keySet();
@@ -228,12 +233,16 @@
                                     System.out.print(mandatoryObjectMissingMap.get(mandatoryObjectMissingKey));
                                 }
                             }
+                            break;
                         case SYNCHRONIZEDPATHCOMPUTATIONREQUESTMISSING:
                             System.out.print("Synchronized path computation request missing");
+                            break;
                         case UNKNOWNREQUESTREFERENCE:
                             System.out.print("Unknown request reference");
+                            break;
                         case ESTABLISHINGSECONDPCEPSESSION:
                             System.out.print("Attempt to establish a second PCEP session");
+                            break;
                         case RECEPTIONOFINVALIDOBJECT:
                             receptionOfInvalidObjectMap =  pcepErrorDetail.receptionOfInvalidObject();
                             Set<Integer> receptionOfInvalidObjectKeySet = receptionOfInvalidObjectMap.keySet();
@@ -242,6 +251,7 @@
                                     System.out.print(receptionOfInvalidObjectMap.get(receptionOfInvalidObjectKey));
                                 }
                             }
+                            break;
                         case INVALIDOPERATION:
                             invalidOperationMap =  pcepErrorDetail.invalidOperation();
                             Set<Integer> invalidOperationKeySet = invalidOperationMap.keySet();
@@ -250,10 +260,13 @@
                                     System.out.print(invalidOperationMap.get(invalidOperationKey));
                                 }
                             }
+                            break;
                         case VIRTUALNETWORKTLVMISSING:
                             System.out.print("VIRTUAL-NETWORK TLV missing");
+                            break;
                         default:
                             System.out.print("Unknown error message");
+                            break;
                     }
                 }
             }
