temporary fix for ONOS-1144: slow IPAddress.toString()

Change-Id: Ia7b9a71bb8c5b90dbc6256c35e8aa5a6567299c8
diff --git a/utils/misc/src/main/java/org/onlab/packet/IpAddress.java b/utils/misc/src/main/java/org/onlab/packet/IpAddress.java
index b04d843..f8d9f2f 100644
--- a/utils/misc/src/main/java/org/onlab/packet/IpAddress.java
+++ b/utils/misc/src/main/java/org/onlab/packet/IpAddress.java
@@ -331,15 +331,25 @@
      * @see java.lang.Object#toString()
      */
     public String toString() {
-        InetAddress inetAddr = null;
-        try {
-            inetAddr = InetAddress.getByAddress(octets);
-        } catch (UnknownHostException e) {
-            // Should never happen
-            checkState(false, "Internal error: Ip6Address.toString()");
-            return "[Invalid IP Address]";
+        // FIXME InetAddress is super slow
+        switch (version) {
+            case INET:
+                return String.format("%d.%d.%d.%d", octets[0] & 0xff,
+                                                    octets[1] & 0xff,
+                                                    octets[2] & 0xff,
+                                                    octets[3] & 0xff);
+            case INET6:
+            default:
+                InetAddress inetAddr = null;
+                try {
+                    inetAddr = InetAddress.getByAddress(octets);
+                } catch (UnknownHostException e) {
+                    // Should never happen
+                    checkState(false, "Internal error: Ip6Address.toString()");
+                    return "[Invalid IP Address]";
+                }
+                return InetAddresses.toAddrString(inetAddr);
         }
-        return InetAddresses.toAddrString(inetAddr);
     }
 
     /**