diff --git a/apps/acl/src/main/java/org/onosproject/acl/AclStore.java b/apps/acl/src/main/java/org/onosproject/acl/AclStore.java
index 80c5c03..63fc08d 100644
--- a/apps/acl/src/main/java/org/onosproject/acl/AclStore.java
+++ b/apps/acl/src/main/java/org/onosproject/acl/AclStore.java
@@ -124,7 +124,7 @@
      * Checks if an existing ACL rule already works in a given device.
      *
      * @param ruleId   ACL rule id
-     * @param deviceId devide id
+     * @param deviceId device id
      * @return true if the given ACL rule works in the given device
      */
     boolean checkIfRuleWorksInDevice(RuleId ruleId, DeviceId deviceId);
diff --git a/apps/cip/src/main/java/org/onosproject/cip/ClusterIpManager.java b/apps/cip/src/main/java/org/onosproject/cip/ClusterIpManager.java
index 6dadbcb..f48b7f5 100644
--- a/apps/cip/src/main/java/org/onosproject/cip/ClusterIpManager.java
+++ b/apps/cip/src/main/java/org/onosproject/cip/ClusterIpManager.java
@@ -146,7 +146,7 @@
             addIpAlias(aliasIp, aliasMask, aliasAdapter);
             wasLeader = true;
         } else if (wasLeader && !isLeader) {
-            // Loosing leadership, so drop the IP alias
+            // Losing leadership, so drop the IP alias
             removeIpAlias(aliasIp, aliasMask, aliasAdapter);
             wasLeader = false;
         }
diff --git a/apps/config/src/test/java/org/onosproject/d/config/DynamicDeviceConfigServiceViewTest.java b/apps/config/src/test/java/org/onosproject/d/config/DynamicDeviceConfigServiceViewTest.java
index 78193fb..a9b0c31 100644
--- a/apps/config/src/test/java/org/onosproject/d/config/DynamicDeviceConfigServiceViewTest.java
+++ b/apps/config/src/test/java/org/onosproject/d/config/DynamicDeviceConfigServiceViewTest.java
@@ -84,7 +84,7 @@
             .addBranchPointSchema("intf", "test")
             .build();
 
-        final CountDownLatch recieved = new CountDownLatch(1);
+        final CountDownLatch received = new CountDownLatch(1);
 
         DynamicConfigListener lsnr = new DynamicConfigListener() {
 
@@ -97,14 +97,14 @@
             @Override
             public void event(DynamicConfigEvent event) {
                 viewEvent = event;
-                recieved.countDown();
+                received.countDown();
             }
         };
         view.addListener(lsnr);
 
         service.post(new DynamicConfigEvent(Type.NODE_ADDED, realIntf));
 
-        assertTrue(recieved.await(5, TimeUnit.SECONDS));
+        assertTrue(received.await(5, TimeUnit.SECONDS));
 
         assertFalse("Expect relative path but was" + viewRelevantEvent.subject(),
                     ResourceIds.isPrefix(rid, viewRelevantEvent.subject()));
diff --git a/apps/dhcprelay/src/test/java/org/onosproject/dhcprelay/DhcpRelayManagerTest.java b/apps/dhcprelay/src/test/java/org/onosproject/dhcprelay/DhcpRelayManagerTest.java
index cab0908..8c57c9f 100644
--- a/apps/dhcprelay/src/test/java/org/onosproject/dhcprelay/DhcpRelayManagerTest.java
+++ b/apps/dhcprelay/src/test/java/org/onosproject/dhcprelay/DhcpRelayManagerTest.java
@@ -288,7 +288,7 @@
     @Test
     public void testArpRequest() throws Exception {
         packetService.processPacket(new TestArpRequestPacketContext(CLIENT_INTERFACE));
-        OutboundPacket outboundPacket = packetService.emitedPacket;
+        OutboundPacket outboundPacket = packetService.emittedPacket;
         byte[] outPacketData = outboundPacket.data().array();
         Ethernet eth = Ethernet.deserializer().deserialize(outPacketData, 0, outPacketData.length);
 
@@ -436,7 +436,7 @@
 
     private class MockPacketService extends PacketServiceAdapter {
         Set<PacketProcessor> packetProcessors = Sets.newHashSet();
-        OutboundPacket emitedPacket;
+        OutboundPacket emittedPacket;
 
         @Override
         public void addProcessor(PacketProcessor processor, int priority) {
@@ -449,7 +449,7 @@
 
         @Override
         public void emit(OutboundPacket packet) {
-            this.emitedPacket = packet;
+            this.emittedPacket = packet;
         }
     }
 
diff --git a/apps/evpnopenflow/src/main/java/org/onosproject/evpnopenflow/manager/impl/EvpnManager.java b/apps/evpnopenflow/src/main/java/org/onosproject/evpnopenflow/manager/impl/EvpnManager.java
index 33d6924..562171b 100644
--- a/apps/evpnopenflow/src/main/java/org/onosproject/evpnopenflow/manager/impl/EvpnManager.java
+++ b/apps/evpnopenflow/src/main/java/org/onosproject/evpnopenflow/manager/impl/EvpnManager.java
@@ -426,8 +426,8 @@
             List<VpnRouteTarget> expRt = route.exportRouteTarget();
             List<VpnRouteTarget> similar = new LinkedList<>(expRt);
             similar.retainAll(vpnInstance.getImportRouteTargets());
-            //TODO: currently checking for RT comparision.
-            //TODO: Need to check about RD comparision is really required.
+            //TODO: currently checking for RT comparison.
+            //TODO: Need to check about RD comparison is really required.
             //if (route.routeDistinguisher()
             //.equals(vpnInstance.routeDistinguisher())) {
             if (!similar.isEmpty()) {
diff --git a/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/device/IpDeviceDescription.java b/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/device/IpDeviceDescription.java
index 25e3685..81dc9f6 100644
--- a/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/device/IpDeviceDescription.java
+++ b/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/device/IpDeviceDescription.java
@@ -38,7 +38,7 @@
     URI deviceUri();
 
     /**
-     * Returns the type of the ip device. For ex: Psuedo or actual
+     * Returns the type of the ip device. For ex: Pseudo or actual
      *
      * @return type of the device
      */
diff --git a/apps/learning-switch/src/main/java/org/onosproject/learningswitch/LearningSwitchSolution.java b/apps/learning-switch/src/main/java/org/onosproject/learningswitch/LearningSwitchSolution.java
index 842044a..621d16d 100644
--- a/apps/learning-switch/src/main/java/org/onosproject/learningswitch/LearningSwitchSolution.java
+++ b/apps/learning-switch/src/main/java/org/onosproject/learningswitch/LearningSwitchSolution.java
@@ -80,7 +80,7 @@
         log.info("Started");
         appId = coreService.getAppId("org.onosproject.learningswitch"); //equal to the name shown in pom.xml file
 
-        processor = new SwitchPacketProcesser();
+        processor = new SwitchPacketProcessor();
         packetService.addProcessor(processor, PacketProcessor.director(3));
 
         /*
@@ -106,7 +106,7 @@
      * send the packet out the port previously learned for the destination MAC, if it
      * exists. Otherwise flood the packet (to all ports).
      */
-    private class SwitchPacketProcesser implements PacketProcessor {
+    private class SwitchPacketProcessor implements PacketProcessor {
         /**
          * Learns the source port associated with the packet's DeviceId if it has not already been learned.
          * Calls actLikeSwitch to process and send the packet.
diff --git a/apps/learning-switch/src/main/java/org/onosproject/learningswitch/LearningSwitchTutorial.java b/apps/learning-switch/src/main/java/org/onosproject/learningswitch/LearningSwitchTutorial.java
index b0daa95..3a9c8b7 100644
--- a/apps/learning-switch/src/main/java/org/onosproject/learningswitch/LearningSwitchTutorial.java
+++ b/apps/learning-switch/src/main/java/org/onosproject/learningswitch/LearningSwitchTutorial.java
@@ -106,7 +106,7 @@
      * send the packet out the port previously learned for the destination MAC.  If it does not exist,
      * flood the packet out (to all ports).
      */
-    private class SwitchPacketProcesser implements PacketProcessor {
+    private class SwitchPacketProcessor implements PacketProcessor {
         /**
          * Learns the source port associated with the packet's DeviceId if it has not already been learned.
          * Calls actLikeSwitch to process and send the packet.
diff --git a/apps/network-troubleshoot/api/src/main/java/org/onosproject/fnl/base/TsLoopPacket.java b/apps/network-troubleshoot/api/src/main/java/org/onosproject/fnl/base/TsLoopPacket.java
index 4f68942..b675a87 100644
--- a/apps/network-troubleshoot/api/src/main/java/org/onosproject/fnl/base/TsLoopPacket.java
+++ b/apps/network-troubleshoot/api/src/main/java/org/onosproject/fnl/base/TsLoopPacket.java
@@ -280,7 +280,7 @@
     /**
      * Returns true if the packet passed through the specific device.
      *
-     * @param deviceId identify of the divice to test
+     * @param deviceId identify of the device to test
      * @return true if packet passed through the specific device;
      *         false otherwise
      */
diff --git a/apps/openstacknetworking/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSecurityGroupHandler.java b/apps/openstacknetworking/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSecurityGroupHandler.java
index f425f3b..23622f4 100644
--- a/apps/openstacknetworking/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSecurityGroupHandler.java
+++ b/apps/openstacknetworking/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSecurityGroupHandler.java
@@ -285,7 +285,7 @@
     /**
      * Sets connection tracking rule using OVS extension commands.
      * It is not so graceful, but I don't want to make it more general because it is going to be used
-     * only here. The following is the usage of the fucntion.
+     * only here. The following is the usage of the function.
      *
      * @param deviceId Device ID
      * @param ctState ctState: please use RulePopulatorUtil.computeCtStateFlag() to build the value
diff --git a/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/PceManager.java b/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/PceManager.java
index 2c5aad7..47c369c 100644
--- a/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/PceManager.java
+++ b/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/PceManager.java
@@ -307,7 +307,7 @@
         return devList;
     }
 
-    //To dectect loops in the path i.e if the partial paths has intersection node avoid it.
+    //To detect loops in the path i.e if the partial paths has intersection node avoid it.
     private boolean pathValidation(List<Path> partialPath, Path path) {
 
         //List of devices in new path computed
diff --git a/apps/pce/pceweb/src/main/java/org/onosproject/pceweb/PceWebTopovOverlay.java b/apps/pce/pceweb/src/main/java/org/onosproject/pceweb/PceWebTopovOverlay.java
index f876b45..1ab69eb 100644
--- a/apps/pce/pceweb/src/main/java/org/onosproject/pceweb/PceWebTopovOverlay.java
+++ b/apps/pce/pceweb/src/main/java/org/onosproject/pceweb/PceWebTopovOverlay.java
@@ -164,7 +164,7 @@
         try {
             Thread.sleep(100);
         } catch (InterruptedException e) {
-            log.error("Exception occured while getting the bandwidth.");
+            log.error("Exception occurred while getting the bandwidth.");
         }
         Set<Resource> resources = resService.getRegisteredResources(devResource.id());
         for (Resource res : resources) {
diff --git a/apps/pcep-api/src/main/java/org/onosproject/pcep/api/PcepSwitch.java b/apps/pcep-api/src/main/java/org/onosproject/pcep/api/PcepSwitch.java
index 8144209..19aeff7 100644
--- a/apps/pcep-api/src/main/java/org/onosproject/pcep/api/PcepSwitch.java
+++ b/apps/pcep-api/src/main/java/org/onosproject/pcep/api/PcepSwitch.java
@@ -30,7 +30,7 @@
         /* router */
         ROUTER,
 
-        /* unkown type */
+        /* unknown type */
         UNKNOW,
     }
 
diff --git a/apps/pim/src/main/java/org/onosproject/pim/impl/PimInterface.java b/apps/pim/src/main/java/org/onosproject/pim/impl/PimInterface.java
index ca23864..b52acc5 100644
--- a/apps/pim/src/main/java/org/onosproject/pim/impl/PimInterface.java
+++ b/apps/pim/src/main/java/org/onosproject/pim/impl/PimInterface.java
@@ -167,7 +167,7 @@
     /**
      * Return a single "best" IP address.
      *
-     * @return the choosen IP address or null if none
+     * @return the chosen IP address or null if none
      */
     public IpAddress getIpAddress() {
         if (onosInterface.ipAddressesList().isEmpty()) {
diff --git a/apps/pim/src/main/java/org/onosproject/pim/impl/PimInterfaceService.java b/apps/pim/src/main/java/org/onosproject/pim/impl/PimInterfaceService.java
index 6a82f4c..3c9431f 100644
--- a/apps/pim/src/main/java/org/onosproject/pim/impl/PimInterfaceService.java
+++ b/apps/pim/src/main/java/org/onosproject/pim/impl/PimInterfaceService.java
@@ -24,7 +24,7 @@
  * define PIM Interfaces.  The PIM Application signed up as a Netconfig
  * listener.
  *
- * TODO: Do we need a PIMInterfaceListenerService?  Who sould listen to Interfaces changes?
+ * TODO: Do we need a PIMInterfaceListenerService?  Who should listen to Interfaces changes?
  */
 public interface PimInterfaceService {
 
diff --git a/apps/rabbitmq/src/main/java/org/onosproject/rabbitmq/api/MQConstants.java b/apps/rabbitmq/src/main/java/org/onosproject/rabbitmq/api/MQConstants.java
index 5c9731f..540bdb1 100644
--- a/apps/rabbitmq/src/main/java/org/onosproject/rabbitmq/api/MQConstants.java
+++ b/apps/rabbitmq/src/main/java/org/onosproject/rabbitmq/api/MQConstants.java
@@ -109,7 +109,7 @@
     public static final String CHASIS_ID = "chassis_id";
 
     /**
-     * Specifies event occurence time.
+     * Specifies event occurrence time.
      */
     public static final String OCC_TIME = "occurrence_time";
 
@@ -129,9 +129,9 @@
     public static final String LOGICAL = "logical";
 
     /**
-     * Specifies packet recieved time.
+     * Specifies packet received time.
      */
-    public static final String RECIEVED = "received";
+    public static final String RECEIVED = "received";
 
     /**
      * Specifies message type.
diff --git a/apps/rabbitmq/src/main/java/org/onosproject/rabbitmq/impl/MQServiceImpl.java b/apps/rabbitmq/src/main/java/org/onosproject/rabbitmq/impl/MQServiceImpl.java
index 0ec5127..11b46fb 100644
--- a/apps/rabbitmq/src/main/java/org/onosproject/rabbitmq/impl/MQServiceImpl.java
+++ b/apps/rabbitmq/src/main/java/org/onosproject/rabbitmq/impl/MQServiceImpl.java
@@ -136,7 +136,7 @@
     /**
      * Publishes packet message to MQ server.
      *
-     * @param context Context of the packet recieved including details like mac, length etc
+     * @param context Context of the packet received including details like mac, length etc
      */
     @Override
     public void publish(PacketContext context) {
diff --git a/apps/rabbitmq/src/main/java/org/onosproject/rabbitmq/util/MQUtil.java b/apps/rabbitmq/src/main/java/org/onosproject/rabbitmq/util/MQUtil.java
index 0fbcab0..33aded4 100644
--- a/apps/rabbitmq/src/main/java/org/onosproject/rabbitmq/util/MQUtil.java
+++ b/apps/rabbitmq/src/main/java/org/onosproject/rabbitmq/util/MQUtil.java
@@ -144,7 +144,7 @@
         jo.addProperty(SWITCH_ID, pkt.receivedFrom().deviceId().toString());
         jo.addProperty(IN_PORT, pkt.receivedFrom().port().name());
         jo.addProperty(LOGICAL, pkt.receivedFrom().port().isLogical());
-        jo.addProperty(RECIEVED, new Date(context.time()).toString());
+        jo.addProperty(RECEIVED, new Date(context.time()).toString());
         jo.addProperty(MSG_TYPE, PKT_TYPE);
         // parse ethernet
         jo.addProperty(SUB_MSG_TYPE,
diff --git a/apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/api/package-info.java b/apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/api/package-info.java
index d0e8ea9..9e4113d 100644
--- a/apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/api/package-info.java
+++ b/apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/api/package-info.java
@@ -15,6 +15,6 @@
  */
 
 /**
- * Application api for Scaleable Gateway management.
+ * Application api for Scalable Gateway management.
  */
-package org.onosproject.scalablegateway.api;
\ No newline at end of file
+package org.onosproject.scalablegateway.api;
diff --git a/apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/cli/package-info.java b/apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/cli/package-info.java
index 620d9de..83b43f2 100644
--- a/apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/cli/package-info.java
+++ b/apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/cli/package-info.java
@@ -15,6 +15,6 @@
  */
 
 /**
- * Command line interface for Scaleable Gateway management.
+ * Command line interface for Scalable Gateway management.
  */
-package org.onosproject.scalablegateway.cli;
\ No newline at end of file
+package org.onosproject.scalablegateway.cli;
diff --git a/apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/impl/package-info.java b/apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/impl/package-info.java
index e4aad4f..2e39cb9 100644
--- a/apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/impl/package-info.java
+++ b/apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/impl/package-info.java
@@ -15,6 +15,6 @@
  */
 
 /**
- * Application for Scaleable Gateway management.
+ * Application for Scalable Gateway management.
  */
-package org.onosproject.scalablegateway.impl;
\ No newline at end of file
+package org.onosproject.scalablegateway.impl;
diff --git a/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/PortPairId.java b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/PortPairId.java
index 47d4244..0b44761 100644
--- a/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/PortPairId.java
+++ b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/PortPairId.java
@@ -55,7 +55,7 @@
     }
 
     /**
-     * Returns teh value of port pair id.
+     * Returns the value of port pair id.
      *
      * @return port pair id
      */
diff --git a/apps/yms/api/src/main/java/org/onosproject/yms/ych/YangCodecHandler.java b/apps/yms/api/src/main/java/org/onosproject/yms/ych/YangCodecHandler.java
index a7e63f0..47e6c66 100644
--- a/apps/yms/api/src/main/java/org/onosproject/yms/ych/YangCodecHandler.java
+++ b/apps/yms/api/src/main/java/org/onosproject/yms/ych/YangCodecHandler.java
@@ -118,7 +118,7 @@
      * The protocols can have a logical root node which acts as a container
      * of applications module node.  For example in RESTCONF, it could be
      * RootResource/data, etc. There is no validation done on the value
-     * of this parameter. It is upto the protocol to use it. It is a
+     * of this parameter. It is up to the protocol to use it. It is a
      * mandatory parameter and protocols must pass this parameter.
      * <p>
      * The resource to be operated upon in the device is identified in a
diff --git a/apps/yms/ut/src/test/java/org/onosproject/yms/app/ydt/YdtDecimal64Test.java b/apps/yms/ut/src/test/java/org/onosproject/yms/app/ydt/YdtDecimal64Test.java
index 24f439e..69fffb0 100644
--- a/apps/yms/ut/src/test/java/org/onosproject/yms/app/ydt/YdtDecimal64Test.java
+++ b/apps/yms/ut/src/test/java/org/onosproject/yms/app/ydt/YdtDecimal64Test.java
@@ -51,7 +51,7 @@
 
     Positive scenario
 
-    input at boundry for decimal64 with fraction 2
+    input at boundary for decimal64 with fraction 2
         i. min value
         ii. max value
 
