diff --git a/src/main/java/net/onrc/onos/apps/websocket/TopologyWebSocket.java b/src/main/java/net/onrc/onos/apps/websocket/TopologyWebSocket.java
index f706944..1a83b94 100644
--- a/src/main/java/net/onrc/onos/apps/websocket/TopologyWebSocket.java
+++ b/src/main/java/net/onrc/onos/apps/websocket/TopologyWebSocket.java
@@ -32,8 +32,8 @@
  * <p>
  * <ol>
  * <li> WebSocket Client opens a WebSocket connection to the corresponding
- *    @ServerEndpoint: an instance for this class is created, and method
- *    @OnOpen is called. </li>
+ *    {@literal @ServerEndpoint}: an instance for this class is created, and method
+ *    {@literal @OnOpen} is called. </li>
  * <li> If the client sends a text message: method @OnMessage for String
  *    argument is called. </li>
  * <li> If the client sends a binary message: method @OnMessage
diff --git a/src/main/java/net/onrc/onos/core/matchaction/action/ModifyLambdaAction.java b/src/main/java/net/onrc/onos/core/matchaction/action/ModifyLambdaAction.java
index ee5cdb2..5399de3 100644
--- a/src/main/java/net/onrc/onos/core/matchaction/action/ModifyLambdaAction.java
+++ b/src/main/java/net/onrc/onos/core/matchaction/action/ModifyLambdaAction.java
@@ -12,7 +12,7 @@
     /**
      * Constructor.
      *
-     * @param dstPort Destination port number
+     * @param lambda lambda after modification
      */
     public ModifyLambdaAction(int lambda) {
         this.lambda = lambda;
diff --git a/src/main/java/net/onrc/onos/core/packet/OnosLldp.java b/src/main/java/net/onrc/onos/core/packet/OnosLldp.java
index 7a53f0b..c3b2e8e 100644
--- a/src/main/java/net/onrc/onos/core/packet/OnosLldp.java
+++ b/src/main/java/net/onrc/onos/core/packet/OnosLldp.java
@@ -246,7 +246,7 @@
     /**
      * Sets switch DPID in LLDP packet.
      *
-     * @param sw the switch dpid
+     * @param dpid the switch dpid
      */
     public void setSwitch(Long dpid) {
         final byte[] byteDpid = ByteBuffer.allocate(8).putLong(dpid)
@@ -259,7 +259,7 @@
     /**
      * Sets the port number in LLDP packet.
      *
-     * @param port the port number
+     * @param portNumber the port number
      */
     public void setPort(short portNumber) {
         this.setPortTLV(portNumber);
@@ -279,6 +279,7 @@
      *
      * @return the serialized packet
      */
+    @Override
     public byte[] serialize() {
         return super.serialize();
     }
diff --git a/src/main/java/net/onrc/onos/core/topology/TopologyEvent.java b/src/main/java/net/onrc/onos/core/topology/TopologyEvent.java
index cf61017..81e261d 100644
--- a/src/main/java/net/onrc/onos/core/topology/TopologyEvent.java
+++ b/src/main/java/net/onrc/onos/core/topology/TopologyEvent.java
@@ -60,7 +60,8 @@
 
     /**
      * Check if all events contained are equal.
-     * @param obj.
+     *
+     * @param obj TopologyEvent to compare against
      */
     @Override
     public boolean equals(Object obj) {
