diff --git a/utils/misc/src/test/java/org/onlab/packet/IGMPTest.java b/utils/misc/src/test/java/org/onlab/packet/IGMPTest.java
index 7634bbf..6a8a37b 100644
--- a/utils/misc/src/test/java/org/onlab/packet/IGMPTest.java
+++ b/utils/misc/src/test/java/org/onlab/packet/IGMPTest.java
@@ -73,7 +73,7 @@
 
     @Test
     public void testDeserializeTruncated() throws Exception {
-        byte [] bits = igmpQuery.serialize();
+        byte[] bits = igmpQuery.serialize();
         PacketTestUtils.testDeserializeTruncated(deserializer, bits);
 
         bits = igmpMembership.serialize();
@@ -82,14 +82,14 @@
 
     @Test
     public void testDeserializeQuery() throws Exception {
-        byte [] data = igmpQuery.serialize();
+        byte[] data = igmpQuery.serialize();
         IGMP igmp = deserializer.deserialize(data, 0, data.length);
         assertTrue(igmp.equals(igmpQuery));
     }
 
     @Test
     public void testDeserializeMembership() throws Exception {
-        byte [] data = igmpMembership.serialize();
+        byte[] data = igmpMembership.serialize();
         IGMP igmp = deserializer.deserialize(data, 0, data.length);
         assertTrue(igmp.equals(igmpMembership));
     }
diff --git a/utils/misc/src/test/java/org/onlab/packet/PIMTest.java b/utils/misc/src/test/java/org/onlab/packet/PIMTest.java
index 7fba3cd..8e3e890 100644
--- a/utils/misc/src/test/java/org/onlab/packet/PIMTest.java
+++ b/utils/misc/src/test/java/org/onlab/packet/PIMTest.java
@@ -101,7 +101,7 @@
      */
     @Test
     public void testDeserializeTruncated() throws Exception {
-        byte [] bits = pimJoinPrune.serialize();
+        byte[] bits = pimJoinPrune.serialize();
         PacketTestUtils.testDeserializeTruncated(deserializer, bits);
     }
 
@@ -112,7 +112,7 @@
      */
     @Test
     public void testDeserializeHello() throws Exception {
-        byte [] data = pimHello.serialize();
+        byte[] data = pimHello.serialize();
         PIM pim = deserializer.deserialize(data, 0, data.length);
         assertTrue(pim.equals(pimHello));
     }
@@ -124,7 +124,7 @@
      */
     @Test
     public void testDeserializeJoinPrune() throws Exception {
-        byte [] data = pimJoinPrune.serialize();
+        byte[] data = pimJoinPrune.serialize();
         PIM pim = deserializer.deserialize(data, 0, data.length);
         assertTrue(pim.equals(pimJoinPrune));
     }
