diff --git a/src/main/java/net/onrc/onos/core/datastore/utils/KVObject.java b/src/main/java/net/onrc/onos/core/datastore/utils/KVObject.java
index 2efa0b0..aad0310 100644
--- a/src/main/java/net/onrc/onos/core/datastore/utils/KVObject.java
+++ b/src/main/java/net/onrc/onos/core/datastore/utils/KVObject.java
@@ -360,11 +360,6 @@
             return obj;
         }
 
-        @Deprecated
-        public OPERATION getOp() {
-            return this.getOperation();
-        }
-
         @Override
         public boolean hasSucceeded() {
             return base.hasSucceeded();
diff --git a/src/main/java/net/onrc/onos/core/topology/NetworkGraphDatastore.java b/src/main/java/net/onrc/onos/core/topology/NetworkGraphDatastore.java
index f5aec14..08eb061 100644
--- a/src/main/java/net/onrc/onos/core/topology/NetworkGraphDatastore.java
+++ b/src/main/java/net/onrc/onos/core/topology/NetworkGraphDatastore.java
@@ -70,7 +70,7 @@
         if (failed) {
             log.error("Adding Switch {} and its ports failed.", sw.getDpid());
             for (WriteOp op : groupOp) {
-                log.debug("Operation:{} for {} - Result:{}", op.getOp(), op.getObject(), op.getStatus());
+                log.debug("Operation:{} for {} - Result:{}", op.getOperation(), op.getObject(), op.getStatus());
 
                 // If we changed the operation from ForceCreate to
                 // Conditional operation (Create/Update) then we should retry here.
