diff --git a/cli/src/main/java/org/onlab/onos/cli/net/ConnectPointCompleter.java b/cli/src/main/java/org/onlab/onos/cli/net/ConnectPointCompleter.java
index 777ace5..16031cc 100644
--- a/cli/src/main/java/org/onlab/onos/cli/net/ConnectPointCompleter.java
+++ b/cli/src/main/java/org/onlab/onos/cli/net/ConnectPointCompleter.java
@@ -15,9 +15,6 @@
  */
 package org.onlab.onos.cli.net;
 
-import java.util.List;
-import java.util.SortedSet;
-
 import org.apache.karaf.shell.console.Completer;
 import org.apache.karaf.shell.console.completer.StringsCompleter;
 import org.onlab.onos.cli.AbstractShellCommand;
@@ -25,6 +22,9 @@
 import org.onlab.onos.net.Port;
 import org.onlab.onos.net.device.DeviceService;
 
+import java.util.List;
+import java.util.SortedSet;
+
 /**
  * ConnectPoint completer.
  */
@@ -40,9 +40,10 @@
         // Generate the device ID/port number identifiers
         for (Device device : service.getDevices()) {
             SortedSet<String> strings = delegate.getStrings();
-
             for (Port port : service.getPorts(device.id())) {
-                strings.add(device.id().toString() + "/" + port.number());
+                if (!port.number().isLogical()) {
+                    strings.add(device.id().toString() + "/" + port.number());
+                }
             }
         }
 
diff --git a/core/api/src/main/java/org/onlab/onos/codec/CodecService.java b/core/api/src/main/java/org/onlab/onos/codec/CodecService.java
index 100a28c..5f456f8 100644
--- a/core/api/src/main/java/org/onlab/onos/codec/CodecService.java
+++ b/core/api/src/main/java/org/onlab/onos/codec/CodecService.java
@@ -43,6 +43,7 @@
      *
      * @param entityClass entity class
      * @param codec       JSON codec
+     * @param <T>         entity type
      */
     <T> void registerCodec(Class<T> entityClass, JsonCodec<T> codec);
 
diff --git a/core/api/src/main/java/org/onlab/onos/net/DeviceId.java b/core/api/src/main/java/org/onlab/onos/net/DeviceId.java
index e1080f2..f76b6b8 100644
--- a/core/api/src/main/java/org/onlab/onos/net/DeviceId.java
+++ b/core/api/src/main/java/org/onlab/onos/net/DeviceId.java
@@ -34,7 +34,7 @@
     // Public construction is prohibited
     private DeviceId(URI uri) {
         this.uri = uri;
-        this.str = uri.toString();
+        this.str = uri.toString().toLowerCase();
     }
 
 
diff --git a/core/api/src/main/java/org/onlab/onos/store/service/DatabaseService.java b/core/api/src/main/java/org/onlab/onos/store/service/DatabaseService.java
index 2779fe6..a82bd70 100644
--- a/core/api/src/main/java/org/onlab/onos/store/service/DatabaseService.java
+++ b/core/api/src/main/java/org/onlab/onos/store/service/DatabaseService.java
@@ -9,8 +9,8 @@
     /**
      * Reads the specified key.
      * @param tableName name of the table associated with this operation.
-     * @return key key to read.
-     * @returns value (and version) associated with this key. This calls returns null if the key does not exist.
+     * @param key key to read.
+     * @return value (and version) associated with this key. This calls returns null if the key does not exist.
      */
     VersionedValue get(String tableName, String key);
 
diff --git a/core/store/trivial/src/main/java/org/onlab/onos/store/trivial/impl/DefaultTopology.java b/core/store/trivial/src/main/java/org/onlab/onos/store/trivial/impl/DefaultTopology.java
index 7dd739e..2cae2c3 100644
--- a/core/store/trivial/src/main/java/org/onlab/onos/store/trivial/impl/DefaultTopology.java
+++ b/core/store/trivial/src/main/java/org/onlab/onos/store/trivial/impl/DefaultTopology.java
@@ -247,8 +247,9 @@
      * Computes on-demand the set of shortest paths between source and
      * destination devices.
      *
-     * @param src source device
-     * @param dst destination device
+     * @param src    source device
+     * @param dst    destination device
+     * @param weight edge weight function
      * @return set of shortest paths
      */
     Set<Path> getPaths(DeviceId src, DeviceId dst, LinkWeight weight) {
