diff --git a/src/main/java/net/onrc/onos/ofcontroller/core/INetMapTopologyService.java b/src/main/java/net/onrc/onos/ofcontroller/core/INetMapTopologyService.java
index 1992624..954515b 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/core/INetMapTopologyService.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/core/INetMapTopologyService.java
@@ -83,7 +83,7 @@
 	     * See the documentation for method @ref prepareShortestPathTopo()
 	     * for additional information and usage.
 	     *
-	     * @shortestPathTopo the Shortest Path info handler to release.
+	     * @param shortestPathTopo the Shortest Path info handler to release.
 	     */
 	    void dropShortestPathTopo(Map<Long, ?> shortestPathTopo);
 
@@ -95,7 +95,7 @@
 	     * See the documentation for method @ref prepareShortestPathTopo()
 	     * for additional information and usage.
 	     *
-	     * @paran shortestPathTopoHandler the Shortest Path info handler
+	     * @param shortestPathTopo the Shortest Path info handler
 	     * to use.
 	     * @param src the source in the shortest path computation.
 	     * @param dest the destination in the shortest path computation.
diff --git a/src/main/java/net/onrc/onos/ofcontroller/core/internal/LinkStorageImpl.java b/src/main/java/net/onrc/onos/ofcontroller/core/internal/LinkStorageImpl.java
index c37fad2..3aa35a8 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/core/internal/LinkStorageImpl.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/core/internal/LinkStorageImpl.java
@@ -142,7 +142,7 @@
 	
 	/**
 	 * Delete a record in the LinkStorage.
-	 * @param link Record to be deleted.
+	 * @param lt Record to be deleted.
 	 */
 	@Override
 	public void deleteLink(Link lt) {
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java
index f47e631..ce9941e 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java
@@ -65,7 +65,7 @@
 import org.slf4j.LoggerFactory;
 
 /**
- * @short Flow Manager class for handling the network flows.
+ * Flow Manager class for handling the network flows.
  */
 public class FlowManager implements IFloodlightModule, IFlowService, INetMapStorage {
 
@@ -1212,7 +1212,7 @@
      * Get summary of all installed flows by all installers in a given range.
      *
      * @param flowId the Flow ID of the first flow in the flow range to get.
-     * @param maxFlows: the maximum number of flows to be returned.
+     * @param maxFlows the maximum number of flows to be returned.
      * @return the Flow Paths if found, otherwise null.
      */
     @Override
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/IFlowService.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/IFlowService.java
index 0fbb23c..df11d6b 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/IFlowService.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/IFlowService.java
@@ -10,7 +10,7 @@
 import net.onrc.onos.ofcontroller.util.FlowPath;
 
 /**
- * @short Interface for providing Flow Service to other modules.
+ * Interface for providing Flow Service to other modules.
  */
 public interface IFlowService extends IFloodlightService {
     /**
@@ -88,8 +88,8 @@
     /**
      * Get summary of all installed flows by all installers.
      *
-     * @param flowId: starting flow Id of the range
-     * @param maxFlows: number of flows to return
+     * @param flowId starting flow Id of the range
+     * @param maxFlows number of flows to return
      * @return the Flow Paths if found, otherwise null.
      */
     ArrayList<IFlowPath> getAllFlowsSummary(FlowId flowId, int maxFlows);
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/AddFlowResource.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/AddFlowResource.java
index 0f13fe8..7464ec5 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/AddFlowResource.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/AddFlowResource.java
@@ -15,7 +15,7 @@
 import org.slf4j.LoggerFactory;
 
 /**
- * @short Flow Manager REST API implementation: Add a Flow with the Flow
+ * Flow Manager REST API implementation: Add a Flow with the Flow
  * Entries:
  *
  *   POST /wm/flow/add/json
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/AddShortestPathFlowResource.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/AddShortestPathFlowResource.java
index 9340fda..c454b0f 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/AddShortestPathFlowResource.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/AddShortestPathFlowResource.java
@@ -15,7 +15,7 @@
 import org.slf4j.LoggerFactory;
 
 /**
- * @short Flow Manager REST API implementation: Add a Flow by delegating
+ * Flow Manager REST API implementation: Add a Flow by delegating
  * the Shortest Path computation to ONOS:
  *
  *   POST /wm/flow/add-shortest-path/json
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/ClearFlowResource.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/ClearFlowResource.java
index c9e1816..db591ae 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/ClearFlowResource.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/ClearFlowResource.java
@@ -9,7 +9,7 @@
 import org.slf4j.LoggerFactory;
 
 /**
- * @short Flow Manager REST API implementation: Clear internal Flow state.
+ * Flow Manager REST API implementation: Clear internal Flow state.
  *
  * The "{flow-id}" request attribute value can be either a specific Flow ID,
  * or the keyword "all" to clear all Flows:
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/DeleteFlowResource.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/DeleteFlowResource.java
index 9c0673e..5b2bad4 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/DeleteFlowResource.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/DeleteFlowResource.java
@@ -9,7 +9,7 @@
 import org.slf4j.LoggerFactory;
 
 /**
- * @short Flow Manager REST API implementation: Delete Flow state.
+ * Flow Manager REST API implementation: Delete Flow state.
  *
  * The "{flow-id}" request attribute value can be either a specific Flow ID,
  * or the keyword "all" to delete all Flows:
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/FlowWebRoutable.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/FlowWebRoutable.java
index 2c91716..e027270 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/FlowWebRoutable.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/FlowWebRoutable.java
@@ -7,7 +7,7 @@
 import org.restlet.routing.Router;
 
 /**
- * @short REST API implementation for the Flow Manager.
+ * REST API implementation for the Flow Manager.
  */
 public class FlowWebRoutable implements RestletRoutable {
     /**
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetAllFlowsByEndpointsResource.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetAllFlowsByEndpointsResource.java
index 3d06efe..0308e89 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetAllFlowsByEndpointsResource.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetAllFlowsByEndpointsResource.java
@@ -15,7 +15,7 @@
 import org.slf4j.LoggerFactory;
 
 /**
- * @short Flow Manager REST API implementation: Get all Flow state for given
+ * Flow Manager REST API implementation: Get all Flow state for given
  * source and destination switches and ports.
  *
  * The "{src-dpid}" request attribute value is the source DPID of the flows to
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetAllFlowsByInstallerIdResource.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetAllFlowsByInstallerIdResource.java
index 03999b0..43f1618 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetAllFlowsByInstallerIdResource.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetAllFlowsByInstallerIdResource.java
@@ -16,7 +16,7 @@
 import org.slf4j.LoggerFactory;
 
 /**
- * @short Flow Manager REST API implementation: Get all Flow state for a given
+ * Flow Manager REST API implementation: Get all Flow state for a given
  * Installer ID and given source and destination switches and ports.
  *
  * The "{installer-id}" request attribute value is the Installer ID of the
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetAllFlowsResource.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetAllFlowsResource.java
index bac5618..ab88348 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetAllFlowsResource.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetAllFlowsResource.java
@@ -11,7 +11,7 @@
 import org.slf4j.LoggerFactory;
 
 /**
- * @short Flow Manager REST API implementation: Get all Flow state.
+ * Flow Manager REST API implementation: Get all Flow state.
  *
  *   GET /wm/flow/getall/json"
  */
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetFlowByIdResource.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetFlowByIdResource.java
index d2ccd39..77a898c 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetFlowByIdResource.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetFlowByIdResource.java
@@ -10,7 +10,7 @@
 import org.slf4j.LoggerFactory;
 
 /**
- * @short Flow Manager REST API implementation: Get a single Flow state.
+ * Flow Manager REST API implementation: Get a single Flow state.
  *
  * The "{flow-id}" request attribute value is the Flow ID of the flow to get:
  *
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetSummaryFlowsResource.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetSummaryFlowsResource.java
index 5e82765..67e1ad6 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetSummaryFlowsResource.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetSummaryFlowsResource.java
@@ -12,7 +12,7 @@
 import org.slf4j.LoggerFactory;
 
 /**
- * @short Flow Manager REST API implementation: Get summary of all installed
+ * Flow Manager REST API implementation: Get summary of all installed
  * flows by all installers in a given range.
  *
  * The "{flow-id}" request attribute value is the Flow ID of the flow in the
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManager.java b/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
index 7736723..b06547d 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
@@ -1393,7 +1393,6 @@
 
     /**
      * When a switch disconnects we remove any links from our map and notify.
-     * @param The id of the switch
      */
     @Override
     public void removedSwitch(IOFSwitch iofSwitch) {
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryAction.java b/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryAction.java
index f150983..1f8849a 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryAction.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryAction.java
@@ -1508,7 +1508,7 @@
      * Set the action to output to queue on a port.
      *
      * @param port the port to set.
-     * @param int queueId the queue ID to set.
+     * @param queueId the queue ID to set.
      */
     public void setActionEnqueue(Port port, int queueId) {
 	actionEnqueue = new ActionEnqueue(port, queueId);
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryActions.java b/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryActions.java
index 46f638d..53aab66 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryActions.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryActions.java
@@ -68,7 +68,7 @@
     /**
      * Add a Flow Entry Action.
      *
-     * @param FlowEntryAction the Flow Entry Action to add.
+     * @param flowEntryAction the Flow Entry Action to add.
      */
     public void addAction(FlowEntryAction flowEntryAction) {
 	actions.add(flowEntryAction);
diff --git a/src/main/java/net/onrc/onos/registry/controller/IControllerRegistryService.java b/src/main/java/net/onrc/onos/registry/controller/IControllerRegistryService.java
index 21da47e..33ba272 100644
--- a/src/main/java/net/onrc/onos/registry/controller/IControllerRegistryService.java
+++ b/src/main/java/net/onrc/onos/registry/controller/IControllerRegistryService.java
@@ -80,7 +80,7 @@
 	/**
 	 * Register a controller to the ONOS cluster. Must be called before
 	 * the registry can be used to take control of any switches.
-	 * @param controller A unique string ID identifying this controller
+	 * @param controllerId A unique string ID identifying this controller
 	 * in the cluster
 	 * @throws errors connecting to registry service, 
 	 * controllerId already registered
