diff --git a/core/net/src/test/java/org/onosproject/net/edgeservice/impl/EdgeManagerTest.java b/core/net/src/test/java/org/onosproject/net/edgeservice/impl/EdgeManagerTest.java
index b01ec39..67c82e1 100644
--- a/core/net/src/test/java/org/onosproject/net/edgeservice/impl/EdgeManagerTest.java
+++ b/core/net/src/test/java/org/onosproject/net/edgeservice/impl/EdgeManagerTest.java
@@ -37,7 +37,6 @@
 import org.onosproject.net.device.DeviceServiceAdapter;
 import org.onosproject.net.edge.EdgePortEvent;
 import org.onosproject.net.edge.EdgePortListener;
-import org.onosproject.net.flow.TrafficTreatment;
 import org.onosproject.net.link.LinkEvent;
 import org.onosproject.net.packet.OutboundPacket;
 import org.onosproject.net.packet.PacketServiceAdapter;
@@ -352,7 +351,7 @@
                                                                              true)));
         }
 
-        mgr.emitPacket(ByteBuffer.wrap(arr), Optional.<TrafficTreatment>empty());
+        mgr.emitPacket(ByteBuffer.wrap(arr), Optional.empty());
 
         assertEquals("There were an unexpected number of emitted packets",
                      (totalPorts - numInfraPorts) * numDevices, packets.size());
@@ -364,7 +363,7 @@
         }
         //Start testing emission to a specific device
         packets.clear();
-        mgr.emitPacket(NetTestTools.did(Integer.toString(1)), ByteBuffer.wrap(arr), Optional.<TrafficTreatment>empty());
+        mgr.emitPacket(NetTestTools.did(Integer.toString(1)), ByteBuffer.wrap(arr), Optional.empty());
 
         assertEquals("Unexpected number of outbound packets were emitted.",
                      totalPorts - numInfraPorts, packets.size());
@@ -530,4 +529,4 @@
             events.add(event);
         }
     }
-}
\ No newline at end of file
+}
