diff --git a/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/area/OspfAreaImpl.java b/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/area/OspfAreaImpl.java
index 2c33ed5..5a0ca82 100755
--- a/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/area/OspfAreaImpl.java
+++ b/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/area/OspfAreaImpl.java
@@ -729,8 +729,8 @@
                     if (nbr.getLsReqList().containsKey(key)) {
                         LsaWrapper lsWrapper = lsaLookup(recLsa);
                         if (lsWrapper != null) {
-                            LsaHeader ownLSA = (LsaHeader) lsWrapper.ospfLsa();
-                            String status = isNewerOrSameLsa(recLsa, ownLSA);
+                            LsaHeader ownLsa = (LsaHeader) lsWrapper.ospfLsa();
+                            String status = isNewerOrSameLsa(recLsa, ownLsa);
                             if (status.equals("old")) {
                                 continue;
                             } else if (status.equals("same")) {
diff --git a/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/impl/OspfInterfaceChannelHandler.java b/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/impl/OspfInterfaceChannelHandler.java
index aac1322..3bb5dce 100755
--- a/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/impl/OspfInterfaceChannelHandler.java
+++ b/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/impl/OspfInterfaceChannelHandler.java
@@ -258,7 +258,7 @@
             log.debug("OspfChannelHandler::List of OspfMessages Size {}", ospfMessageList.size());
             if (ospfMessageList != null) {
                 for (OspfMessage ospfMessage : ospfMessageList) {
-                    processOSPFMessage(ospfMessage, ctx);
+                    processOspfMessage(ospfMessage, ctx);
                 }
             } else {
                 log.debug("OspfChannelHandler::OspfMessages Null List...!!");
@@ -267,7 +267,7 @@
         if (message instanceof OspfMessage) {
             OspfMessage ospfMessage = (OspfMessage) message;
             log.debug("OspfChannelHandler::OspfMessages received...!!");
-            processOSPFMessage(ospfMessage, ctx);
+            processOspfMessage(ospfMessage, ctx);
         }
     }
 
@@ -280,8 +280,8 @@
      * @param ctx         channel handler context instance.
      * @throws Exception might throws exception
      */
-    public void processOSPFMessage(OspfMessage ospfMessage, ChannelHandlerContext ctx) throws Exception {
-        log.debug("OspfChannelHandler::processOSPFMessage...!!!");
+    public void processOspfMessage(OspfMessage ospfMessage, ChannelHandlerContext ctx) throws Exception {
+        log.debug("OspfChannelHandler::processOspfMessage...!!!");
 
         if (!validateMessage(ospfMessage)) {
             return;
diff --git a/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/impl/OspfNbrImpl.java b/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/impl/OspfNbrImpl.java
index 0d284bf..77a0d53 100755
--- a/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/impl/OspfNbrImpl.java
+++ b/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/impl/OspfNbrImpl.java
@@ -1046,8 +1046,7 @@
 
         //If LSA type is external & the area is configured as stub area discard the lsa RFC 2328 13(3)
         if ((recLsa.getOspfLsaType() == OspfLsaType.EXTERNAL_LSA) &&
-                (!ospfArea.isExternalRoutingCapability())) // to determine how to store options
-        {
+                (!ospfArea.isExternalRoutingCapability())) {
             return true;
         }
 
