diff --git a/src/main/java/net/floodlightcontroller/util/EventHistory.java b/src/main/java/net/floodlightcontroller/util/EventHistory.java
index 40c9a36..d6e08d5 100644
--- a/src/main/java/net/floodlightcontroller/util/EventHistory.java
+++ b/src/main/java/net/floodlightcontroller/util/EventHistory.java
@@ -153,7 +153,7 @@
      * for the next event of the same type
      *
      * @param t
-     * @param op
+     * @param action
      * @return
      */
 
diff --git a/src/main/java/net/onrc/onos/core/intent/ConstrainedBFSTree.java b/src/main/java/net/onrc/onos/core/intent/ConstrainedBFSTree.java
index 69c0635..3f92a29 100644
--- a/src/main/java/net/onrc/onos/core/intent/ConstrainedBFSTree.java
+++ b/src/main/java/net/onrc/onos/core/intent/ConstrainedBFSTree.java
@@ -39,7 +39,7 @@
      *
      * @param rootSwitch root switch of the BFS tree
      * @param intents map of Intents
-     * @param bandwidth
+     * @param bandwidth bandwidth constraint
      */
     public ConstrainedBFSTree(Switch rootSwitch, PathIntentMap intents, double bandwidth) {
         this.rootSwitch = rootSwitch;
diff --git a/src/main/java/net/onrc/onos/core/intent/runtime/PlanInstallModule.java b/src/main/java/net/onrc/onos/core/intent/runtime/PlanInstallModule.java
index d892aee..b74514c 100644
--- a/src/main/java/net/onrc/onos/core/intent/runtime/PlanInstallModule.java
+++ b/src/main/java/net/onrc/onos/core/intent/runtime/PlanInstallModule.java
@@ -178,7 +178,7 @@
         /**
          * Adds the new intents to the event queue.
          *
-         * @param list of new intents
+         * @param value list of new intents
          */
         @Override
         public void entryUpdated(IntentOperationList value) {
diff --git a/src/main/java/net/onrc/onos/core/packet/Ethernet.java b/src/main/java/net/onrc/onos/core/packet/Ethernet.java
index aab5e7b..d8ffe86 100644
--- a/src/main/java/net/onrc/onos/core/packet/Ethernet.java
+++ b/src/main/java/net/onrc/onos/core/packet/Ethernet.java
@@ -282,7 +282,7 @@
     /**
      * Checks to see if a string is a valid MAC address.
      *
-     * @param macAddress
+     * @param macAddress MAC address to be checked
      * @return True if macAddress is a valid MAC, False otherwise
      */
     public static boolean isMACAddress(String macAddress) {
@@ -315,7 +315,7 @@
      * Accepts a MAC address and returns the corresponding long, where the
      * MAC bytes are set on the lower order bytes of the long.
      *
-     * @param macAddress
+     * @param macAddress MAC address to be converted to long value
      * @return a long containing the mac address bytes
      */
     public static long toLong(byte[] macAddress) {
@@ -325,7 +325,7 @@
     /**
      * Convert a long MAC address to a byte array.
      *
-     * @param macAddress
+     * @param macAddress MAC address to be converted to a byte array
      * @return the bytes of the mac address
      */
     public static byte[] toByteArray(long macAddress) {
diff --git a/src/main/java/net/onrc/onos/core/util/CallerId.java b/src/main/java/net/onrc/onos/core/util/CallerId.java
index 93e968e..da83241 100644
--- a/src/main/java/net/onrc/onos/core/util/CallerId.java
+++ b/src/main/java/net/onrc/onos/core/util/CallerId.java
@@ -19,7 +19,7 @@
     /**
      * Copy constructor.
      *
-     * @param otherCallerId
+     * @param otherCallerId the caller ID copied from
      */
     public CallerId(CallerId otherCallerId) {
         // Note: make a full copy if we change value to a mutable type
diff --git a/src/main/java/org/openflow/util/HexString.java b/src/main/java/org/openflow/util/HexString.java
index 9a656dd..08b05cd 100644
--- a/src/main/java/org/openflow/util/HexString.java
+++ b/src/main/java/org/openflow/util/HexString.java
@@ -22,7 +22,7 @@
 public class HexString {
     /**
      * Convert a string of bytes to a ':' separated hex string
-     * @param bytes
+     * @param bytes byte array to be converted to a hex string
      * @return "0f:ca:fe:de:ad:be:ef"
      */
     public static String toHexString(byte[] bytes) {
