Minor fixes

- Format string fix
- FlowRuleEventTest: minor bugfix
- HexString: accept null
- byte[] toString() format change

Change-Id: I9db419cfc211670cc2abd796a21396ba960e23a9
diff --git a/cli/src/main/java/org/onlab/onos/cli/net/ResourceAvailableCommand.java b/cli/src/main/java/org/onlab/onos/cli/net/ResourceAvailableCommand.java
index e67990d..4803e57 100644
--- a/cli/src/main/java/org/onlab/onos/cli/net/ResourceAvailableCommand.java
+++ b/cli/src/main/java/org/onlab/onos/cli/net/ResourceAvailableCommand.java
@@ -85,7 +85,7 @@
             }
 
         } catch (Exception e) {
-            print("Invalid link", e.getMessage());
+            print("Invalid link %s", e.getMessage());
         }
     }
 }
diff --git a/core/api/src/main/java/org/onlab/onos/store/service/VersionedValue.java b/core/api/src/main/java/org/onlab/onos/store/service/VersionedValue.java
index ae6969c..c3a4fac 100644
--- a/core/api/src/main/java/org/onlab/onos/store/service/VersionedValue.java
+++ b/core/api/src/main/java/org/onlab/onos/store/service/VersionedValue.java
@@ -1,5 +1,7 @@
 package org.onlab.onos.store.service;
 
+import static org.onlab.util.HexString.toHexString;
+
 import java.util.Arrays;
 
 import com.google.common.base.MoreObjects;
@@ -64,7 +66,7 @@
     public String toString() {
         return MoreObjects.toStringHelper(getClass())
                 .add("version", version)
-                .add("value", Arrays.toString(value))
+                .add("value", toHexString(value))
                 .toString();
     }
 }
diff --git a/core/api/src/main/java/org/onlab/onos/store/service/WriteRequest.java b/core/api/src/main/java/org/onlab/onos/store/service/WriteRequest.java
index 5274c19..3234bea 100644
--- a/core/api/src/main/java/org/onlab/onos/store/service/WriteRequest.java
+++ b/core/api/src/main/java/org/onlab/onos/store/service/WriteRequest.java
@@ -3,6 +3,7 @@
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
 import static org.onlab.onos.store.service.WriteRequest.Type.*;
+import static org.onlab.util.HexString.toHexString;
 
 import java.util.Objects;
 
@@ -189,9 +190,9 @@
                 .add("type", type)
                 .add("tableName", tableName)
                 .add("key", key)
-                .add("newValue", newValue)
+                .add("newValue", toHexString(newValue))
                 .add("previousVersion", previousVersion)
-                .add("oldValue", oldValue)
+                .add("oldValue", toHexString(oldValue))
                 .toString();
     }
 
diff --git a/core/api/src/test/java/org/onlab/onos/net/flow/FlowRuleEventTest.java b/core/api/src/test/java/org/onlab/onos/net/flow/FlowRuleEventTest.java
index 88ad8c9..90cd0c0 100644
--- a/core/api/src/test/java/org/onlab/onos/net/flow/FlowRuleEventTest.java
+++ b/core/api/src/test/java/org/onlab/onos/net/flow/FlowRuleEventTest.java
@@ -68,7 +68,7 @@
         final long time = System.currentTimeMillis();
         final FlowRule flowRule = new IntentTestsMocks.MockFlowRule(1);
         final FlowRuleEvent event =
-                new FlowRuleEvent(FlowRuleEvent.Type.RULE_UPDATED, flowRule);
+                new FlowRuleEvent(FlowRuleEvent.Type.RULE_UPDATED, flowRule, time);
         validateEvent(event, FlowRuleEvent.Type.RULE_UPDATED, flowRule, time);
     }
 }
diff --git a/utils/misc/src/main/java/org/onlab/util/HexString.java b/utils/misc/src/main/java/org/onlab/util/HexString.java
index 3e9ae03..a1aba93 100644
--- a/utils/misc/src/main/java/org/onlab/util/HexString.java
+++ b/utils/misc/src/main/java/org/onlab/util/HexString.java
@@ -28,6 +28,9 @@
      * @return "0f:ca:fe:de:ad:be:ef"
      */
     public static String toHexString(final byte[] bytes) {
+        if (bytes == null) {
+            return "(null)";
+        }
         int i;
         StringBuilder ret = new StringBuilder(bytes.length * 3 - 1);
         String tmp;