diff --git a/providers/bgp/cli/src/main/java/org/onosproject/bgp/cli/BgpLocalRibDisplay.java b/providers/bgp/cli/src/main/java/org/onosproject/bgp/cli/BgpLocalRibDisplay.java
index 3e5fb68..2e3fcee 100644
--- a/providers/bgp/cli/src/main/java/org/onosproject/bgp/cli/BgpLocalRibDisplay.java
+++ b/providers/bgp/cli/src/main/java/org/onosproject/bgp/cli/BgpLocalRibDisplay.java
@@ -205,7 +205,7 @@
             Set<RouteDistinguisher> vpnNodekeySet = vpnNode.keySet();
             for (RouteDistinguisher vpnNodes : vpnNodekeySet) {
                 boolean invalidProcess = true;
-                if (vpnId != null && vpnId.trim().equals(vpnNodes.hashCode())) {
+                if (vpnId != null && Integer.parseInt(vpnId.trim()) == vpnNodes.hashCode()) {
                     invalidProcess = false;
                     displayNodes();
                 }
@@ -228,7 +228,7 @@
             Set<RouteDistinguisher> vpnLinkkeySet = vpnLink.keySet();
             for (RouteDistinguisher vpnLinks : vpnLinkkeySet) {
                 boolean invalidProcess = true;
-                if (vpnId != null && vpnId.trim().equals(vpnLinks.hashCode())) {
+                if (vpnId != null && Integer.parseInt(vpnId.trim()) == vpnLinks.hashCode()) {
                     invalidProcess = false;
                     displayLinks();
                 }
@@ -250,7 +250,7 @@
             Set<RouteDistinguisher> vpnPrefixkeySet = vpnPrefix.keySet();
             for (RouteDistinguisher vpnprefixId : vpnPrefixkeySet) {
                 boolean invalidProcess = true;
-                if (vpnId != null && vpnId.trim().equals(vpnprefixId.hashCode())) {
+                if (vpnId != null && Integer.parseInt(vpnId.trim()) == vpnprefixId.hashCode()) {
                     invalidProcess = false;
                     displayPrefix();
                 }
