diff --git a/apps/t3/src/main/java/org/onosproject/t3/impl/TroubleshootManager.java b/apps/t3/src/main/java/org/onosproject/t3/impl/TroubleshootManager.java
index 0ff8906..b52b661 100644
--- a/apps/t3/src/main/java/org/onosproject/t3/impl/TroubleshootManager.java
+++ b/apps/t3/src/main/java/org/onosproject/t3/impl/TroubleshootManager.java
@@ -568,7 +568,7 @@
                 computePath(completePath, trace, cp);
                 trace.setSuccess(false);
                 if (deviceService.getPort(cp) == null) {
-                    //Port is not existant on device.
+                    //Port is not existent on device.
                     log.warn("Port {} is not available on device.", cp);
                     trace.addResultMessage("Port " + cp + "is not available on device. Packet is dropped");
                 } else {
diff --git a/core/api/src/main/java/org/onosproject/store/primitives/MapUpdate.java b/core/api/src/main/java/org/onosproject/store/primitives/MapUpdate.java
index 1e82e3a..2eb48e6 100644
--- a/core/api/src/main/java/org/onosproject/store/primitives/MapUpdate.java
+++ b/core/api/src/main/java/org/onosproject/store/primitives/MapUpdate.java
@@ -104,7 +104,7 @@
     }
 
     /**
-     * Transforms this instance into an instance of different paramterized types.
+     * Transforms this instance into an instance of different parameterized types.
      *
      * @param keyMapper transcoder for key type
      * @param valueMapper transcoder to value type
diff --git a/core/api/src/main/java/org/onosproject/store/primitives/NodeUpdate.java b/core/api/src/main/java/org/onosproject/store/primitives/NodeUpdate.java
index 8562401..4a9809c 100644
--- a/core/api/src/main/java/org/onosproject/store/primitives/NodeUpdate.java
+++ b/core/api/src/main/java/org/onosproject/store/primitives/NodeUpdate.java
@@ -92,7 +92,7 @@
     }
 
     /**
-     * Transforms this instance into an instance of different paramterized types.
+     * Transforms this instance into an instance of different parameterized types.
      *
      * @param valueMapper transcoder to value type
      * @return new instance
diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentTreeMapOperations.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentTreeMapOperations.java
index ccb722e..74ae7eb 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentTreeMapOperations.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentTreeMapOperations.java
@@ -391,7 +391,7 @@
             return MoreObjects.toStringHelper(getClass())
                     .add("getFromKey", fromKey)
                     .add("getToKey", toKey)
-                    .add("inclusiveFrotBound", inclusiveFrom)
+                    .add("inclusiveFromBound", inclusiveFrom)
                     .add("inclusiveToBound", inclusiveTo)
                     .toString();
         }
diff --git a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentSetMultimapTest.java b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentSetMultimapTest.java
index 5fa6dcc..a70c6ee 100644
--- a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentSetMultimapTest.java
+++ b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentSetMultimapTest.java
@@ -100,7 +100,7 @@
                 thenAccept(result -> assertTrue(result)).join();
         map.size().thenAccept(result -> assertEquals(3, (int) result))
                 .join();
-        //Check behavior under remove of non-existant key
+        //Check behavior under remove of non-existent key
         map.remove(keyOne, valueOne).
                 thenAccept(result -> assertFalse(result)).join();
         map.size().thenAccept(result -> assertEquals(3, (int) result))
diff --git a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentTreeMapTest.java b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentTreeMapTest.java
index 57bf60c..9af2602 100644
--- a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentTreeMapTest.java
+++ b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentTreeMapTest.java
@@ -467,7 +467,7 @@
                 .join();
         //adding to highest key so there is no acceptable response
         map.ceilingKey(keyFour + "a")
-                .thenAccept(reslt -> assertNull(reslt))
+                .thenAccept(result -> assertNull(result))
                 .join();
         map.higherKey(keyThree).thenAccept(
                 result -> assertEquals(keyFour, result))
