diff --git a/cli/src/main/java/org/onosproject/cli/net/DevicePortStatsCommand.java b/cli/src/main/java/org/onosproject/cli/net/DevicePortStatsCommand.java
index 1fc7d43..2e80454 100644
--- a/cli/src/main/java/org/onosproject/cli/net/DevicePortStatsCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/DevicePortStatsCommand.java
@@ -162,8 +162,8 @@
     /**
      * Converts bytes to human readable string with Kilo, Mega, Giga, etc.
      *
-     * @param bytes
-     * @return
+     * @param bytes input byte array
+     * @return human readble string
      */
     public static String humanReadable(long bytes) {
         int unit = 1000;
@@ -177,8 +177,8 @@
     /**
      * Converts bps to human readable format.
      *
-     * @param bps
-     * @return
+     * @param bps input rate
+     * @return human readble string
      */
     public static String humanReadableBps(float bps) {
         int unit = 1000;
diff --git a/core/api/src/main/java/org/onosproject/net/device/DeviceStore.java b/core/api/src/main/java/org/onosproject/net/device/DeviceStore.java
index d1aa874..851b970 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DeviceStore.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DeviceStore.java
@@ -137,7 +137,7 @@
     /**
      * Returns the list of delta port statistics of the specified device.
      *
-     * @param deviceId
+     * @param deviceId device identifier
      * @return list of delta port statistics of all ports of the device
      */
     List<PortStatistics> getPortDeltaStatistics(DeviceId deviceId);
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/ResourceService.java b/core/api/src/main/java/org/onosproject/net/newresource/ResourceService.java
index e9d38b4..618042a 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/ResourceService.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/ResourceService.java
@@ -127,6 +127,7 @@
     /**
      * Returns allocated resources being as children of the specified parent and being the specified resource type.
      *
+     * @param parent parent resource path
      * @param cls class to specify a type of resource
      * @param <T> type of the resource
      * @return non-empty collection of resource allocations if resources are allocated with the subject and type,
diff --git a/core/api/src/main/java/org/onosproject/store/service/Versioned.java b/core/api/src/main/java/org/onosproject/store/service/Versioned.java
index 2b67edd..89bd302 100644
--- a/core/api/src/main/java/org/onosproject/store/service/Versioned.java
+++ b/core/api/src/main/java/org/onosproject/store/service/Versioned.java
@@ -104,6 +104,7 @@
      * a default value.
      * @param versioned versioned object
      * @param defaultValue default value to return if versioned object is null
+     * @param <U> type of the versioned value
      * @return versioned value or default value if versioned object is null
      */
     public static <U> U valueOrElse(Versioned<U> versioned, U defaultValue) {
diff --git a/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceLinkListener.java b/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceLinkListener.java
index 9d0138b..f04c78b 100644
--- a/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceLinkListener.java
+++ b/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceLinkListener.java
@@ -57,6 +57,7 @@
      * Creates an instance with the specified ResourceAdminService and ExecutorService.
      *
      * @param adminService instance invoked to register resources
+     * @param driverService driver service instance
      * @param executor executor used for processing resource registration
      */
     ResourceLinkListener(ResourceAdminService adminService, DriverService driverService, ExecutorService executor) {
diff --git a/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/MeteringAgent.java b/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/MeteringAgent.java
index 0e81e23..6475bf7 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/MeteringAgent.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/MeteringAgent.java
@@ -53,7 +53,7 @@
      *
      * @param primitiveName Type of primitive to be metered
      * @param objName Global name of the primitive
-     * @param activated
+     * @param activated boolean flag for whether metering is enabled or not
      */
     public MeteringAgent(String primitiveName, String objName, boolean activated) {
         checkNotNull(objName, "Object name cannot be null");
@@ -75,6 +75,7 @@
      * Initializes a specific timer for a given operation.
      *
      * @param op Specific operation being metered
+     * @return timer context
      */
     public Context startTimer(String op) {
         if (!activated) {
@@ -98,8 +99,8 @@
         /**
          * Constructs Context.
          *
-         * @param context
-         * @param operation
+         * @param context context
+         * @param operation operation name
          */
         public Context(Timer.Context context, String operation) {
             this.context = context;
@@ -108,7 +109,7 @@
 
         /**
          * Stops timer given a specific context and updates all related metrics.
-         * @param e
+         * @param e throwable
          */
         public void stop(Throwable e) {
             if (!activated) {
diff --git a/core/store/dist/src/main/java/org/onosproject/store/device/impl/ECDeviceStore.java b/core/store/dist/src/main/java/org/onosproject/store/device/impl/ECDeviceStore.java
index f913f4d..2dae55b 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/device/impl/ECDeviceStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/device/impl/ECDeviceStore.java
@@ -589,9 +589,9 @@
     /**
      * Calculate delta statistics by subtracting previous from new statistics.
      *
-     * @param deviceId
-     * @param prvStats
-     * @param newStats
+     * @param deviceId device indentifier
+     * @param prvStats previous port statistics
+     * @param newStats new port statistics
      * @return PortStatistics
      */
     public PortStatistics calcDeltaStats(DeviceId deviceId, PortStatistics prvStats, PortStatistics newStats) {
diff --git a/core/store/dist/src/main/java/org/onosproject/store/device/impl/GossipDeviceStore.java b/core/store/dist/src/main/java/org/onosproject/store/device/impl/GossipDeviceStore.java
index a540e56..6345643 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/device/impl/GossipDeviceStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/device/impl/GossipDeviceStore.java
@@ -867,9 +867,9 @@
     /**
      * Calculate delta statistics by subtracting previous from new statistics.
      *
-     * @param deviceId
-     * @param prvStats
-     * @param newStats
+     * @param deviceId device identifier
+     * @param prvStats previous port statistics
+     * @param newStats new port statistics
      * @return PortStatistics
      */
     public PortStatistics calcDeltaStats(DeviceId deviceId, PortStatistics prvStats, PortStatistics newStats) {
diff --git a/utils/misc/src/main/java/org/onlab/util/TriConsumer.java b/utils/misc/src/main/java/org/onlab/util/TriConsumer.java
index 2d73c58..d1963c4 100644
--- a/utils/misc/src/main/java/org/onlab/util/TriConsumer.java
+++ b/utils/misc/src/main/java/org/onlab/util/TriConsumer.java
@@ -26,6 +26,9 @@
 
     /**
      * Applies the given arguments to the function.
+     * @param arg1 first argument
+     * @param arg2 second argument
+     * @param arg3 third argument
      */
     void accept(U arg1, V arg2, W arg3);
 
