diff --git a/apps/foo/src/main/java/org/onlab/onos/foo/FooComponent.java b/apps/foo/src/main/java/org/onlab/onos/foo/FooComponent.java
index 7bb24df..2f5c2a6 100644
--- a/apps/foo/src/main/java/org/onlab/onos/foo/FooComponent.java
+++ b/apps/foo/src/main/java/org/onlab/onos/foo/FooComponent.java
@@ -44,6 +44,7 @@
 import org.onlab.onos.net.intent.IntentListener;
 import org.onlab.onos.net.intent.IntentService;
 import org.onlab.onos.store.service.DatabaseAdminService;
+import org.onlab.onos.store.service.DatabaseException;
 import org.onlab.onos.store.service.DatabaseService;
 import org.onlab.onos.store.service.Lock;
 import org.onlab.onos.store.service.LockService;
@@ -209,7 +210,7 @@
                     }
                 }
             }
-            int retry = 5;
+            int retry = 1;
 
             do {
                 if (vv == null) {
@@ -223,13 +224,15 @@
                     log.info("Write success. New value: {}", next);
                     break;
                 } else {
-                    log.info("Write failed trying to write {}", next);
+                    log.info("Write failed retrying.....{}", retry);
                     vv = dbService.get(someTable, someKey);
                     if (vv == null) {
                         log.error("Shouldn't reach here");
                     }
                 }
-            } while (retry-- > 0);
+            } while (retry++ < 5);
+        } catch (DatabaseException e) {
+            log.debug("DB Exception thrown {}", e.getMessage());
         } catch (Exception e) {
             log.error("Exception thrown", e);
         }
