diff --git a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingService.java b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingService.java
index 7a1ddbe..cedc84a 100644
--- a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingService.java
+++ b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/MappingService.java
@@ -51,5 +51,5 @@
      * @param appId application identifier
      * @return collection of mapping entries
      */
-    Iterable<MappingEntry> getMappingEntriesByAddId(Type type, ApplicationId appId);
+    Iterable<MappingEntry> getMappingEntriesByAppId(Type type, ApplicationId appId);
 }
diff --git a/apps/mappingmanagement/api/src/test/java/org/onosproject/mapping/MappingServiceAdapter.java b/apps/mappingmanagement/api/src/test/java/org/onosproject/mapping/MappingServiceAdapter.java
index 5af006e..a320449 100644
--- a/apps/mappingmanagement/api/src/test/java/org/onosproject/mapping/MappingServiceAdapter.java
+++ b/apps/mappingmanagement/api/src/test/java/org/onosproject/mapping/MappingServiceAdapter.java
@@ -45,7 +45,7 @@
     }
 
     @Override
-    public Iterable<MappingEntry> getMappingEntriesByAddId(Type type, ApplicationId appId) {
+    public Iterable<MappingEntry> getMappingEntriesByAppId(Type type, ApplicationId appId) {
         return null;
     }
 }
diff --git a/apps/mappingmanagement/mgr/src/main/java/org/onosproject/mapping/impl/MappingManager.java b/apps/mappingmanagement/mgr/src/main/java/org/onosproject/mapping/impl/MappingManager.java
index 7a741a5..289bb2a 100644
--- a/apps/mappingmanagement/mgr/src/main/java/org/onosproject/mapping/impl/MappingManager.java
+++ b/apps/mappingmanagement/mgr/src/main/java/org/onosproject/mapping/impl/MappingManager.java
@@ -97,7 +97,7 @@
     }
 
     @Override
-    public Iterable<MappingEntry> getMappingEntriesByAddId(Type type, ApplicationId appId) {
+    public Iterable<MappingEntry> getMappingEntriesByAppId(Type type, ApplicationId appId) {
 
         Set<MappingEntry> mappingEntries = Sets.newHashSet();
         for (Device d : deviceService.getDevices()) {
@@ -120,7 +120,7 @@
     @Override
     public void removeMappingEntriesByAppId(Type type, ApplicationId appId) {
         removeMappingEntries(type, Iterables.toArray(
-                    getMappingEntriesByAddId(type, appId), MappingEntry.class));
+                    getMappingEntriesByAppId(type, appId), MappingEntry.class));
     }
 
     @Override
diff --git a/apps/mappingmanagement/mgr/src/test/java/org/onosproject/mapping/impl/MappingManagerTest.java b/apps/mappingmanagement/mgr/src/test/java/org/onosproject/mapping/impl/MappingManagerTest.java
index 95aa93f..bc760ac 100644
--- a/apps/mappingmanagement/mgr/src/test/java/org/onosproject/mapping/impl/MappingManagerTest.java
+++ b/apps/mappingmanagement/mgr/src/test/java/org/onosproject/mapping/impl/MappingManagerTest.java
@@ -261,7 +261,7 @@
 
         assertTrue("should have two mappings",
                 Lists.newLinkedList(
-                        service.getMappingEntriesByAddId(MAP_DATABASE, appId)).size() == 2);
+                        service.getMappingEntriesByAppId(MAP_DATABASE, appId)).size() == 2);
     }
 
     /**
@@ -276,7 +276,7 @@
 
         assertTrue("should not have any mappings",
                 Lists.newLinkedList(
-                        service.getMappingEntriesByAddId(MAP_DATABASE, appId)).size() == 0);
+                        service.getMappingEntriesByAppId(MAP_DATABASE, appId)).size() == 0);
     }
 
     private static class TestDeviceService extends DeviceServiceAdapter {
