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 9a7bd47..0738787 100644
--- 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
@@ -524,6 +524,7 @@
      *
      * @param ospfLsa       OSPF LSA instance
      * @param ospfInterface OSPF interface instance
+     * @throws Exception on error
      */
     public void addLsa(OspfLsa ospfLsa, OspfInterface ospfInterface) throws Exception {
         //second param is false as lsa from network
@@ -536,6 +537,7 @@
      * @param ospfLsa          OSPF LSA instance
      * @param isSelfOriginated true if the LSA is self originated. Else false
      * @param ospfInterface    OSPF interface instance
+     * @throws Exception on error
      */
     public void addLsa(OspfLsa ospfLsa, boolean isSelfOriginated, OspfInterface ospfInterface)
             throws Exception {
@@ -720,4 +722,4 @@
     public OspfLsdb database() {
         return database;
     }
-}
\ No newline at end of file
+}
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 800d571..f563a39 100644
--- 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
@@ -556,6 +556,7 @@
      * In addition, stop the possibly activated re transmission timer.
      *
      * @param ch netty channel instance
+     * @throws Exception on error
      */
     public void badLSReq(Channel ch) throws Exception {
         log.debug("OSPFNbr::badLSReq...!!!");
@@ -1932,4 +1933,4 @@
             return lsUpdateList;
         }
     }
-}
\ No newline at end of file
+}
diff --git a/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/impl/OspfRouterImpl.java b/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/impl/OspfRouterImpl.java
index fe0fe32..2d152a1 100644
--- a/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/impl/OspfRouterImpl.java
+++ b/protocols/ospf/ctl/src/main/java/org/onosproject/ospf/controller/impl/OspfRouterImpl.java
@@ -44,6 +44,8 @@
 
     /**
      * Sets IP address of the Router.
+     *
+     * @param routerIp IP address of the router
      */
     public void setRouterIp(Ip4Address routerIp) {
         this.routerIp = routerIp;
@@ -60,6 +62,8 @@
 
     /**
      * Sets the area id for this device.
+     *
+     * @param areaIdOfInterface area identifier for the device
      */
     public void setAreaIdOfInterface(Ip4Address areaIdOfInterface) {
         this.areaIdOfInterface = areaIdOfInterface;
@@ -154,4 +158,4 @@
     public void setDr(boolean dr) {
         isDr = dr;
     }
-}
\ No newline at end of file
+}
