diff --git a/providers/openflow/packet/src/test/java/org/onlab/onos/provider/of/packet/impl/OpenFlowPacketProviderTest.java b/providers/openflow/packet/src/test/java/org/onlab/onos/provider/of/packet/impl/OpenFlowPacketProviderTest.java
index 84d301b..ceb59bf 100644
--- a/providers/openflow/packet/src/test/java/org/onlab/onos/provider/of/packet/impl/OpenFlowPacketProviderTest.java
+++ b/providers/openflow/packet/src/test/java/org/onlab/onos/provider/of/packet/impl/OpenFlowPacketProviderTest.java
@@ -99,9 +99,8 @@
     }
 
     @Test(expected = IllegalArgumentException.class)
-    public void scheme() {
+    public void wrongScheme() {
         sw.setRole(RoleState.MASTER);
-        //device has wrong scheme
         OutboundPacket schemeFailPkt = outPacket(DID_WRONG, TR, null);
         provider.emit(schemeFailPkt);
         assertEquals("message sent incorrectly", 0, sw.sent.size());
@@ -235,7 +234,6 @@
 
     private class TestController implements OpenFlowController {
 
-        int prio;
         PacketListener pktListener;
         OpenFlowSwitch current;
 
@@ -284,7 +282,6 @@
 
         @Override
         public void addPacketListener(int priority, PacketListener listener) {
-            prio = priority;
             pktListener = listener;
         }
 
@@ -318,19 +315,6 @@
 
     }
 
-    private class TestPacketProviderService implements PacketProviderService {
-
-        @Override
-        public PacketProvider provider() {
-            return null;
-        }
-
-        @Override
-        public void processPacket(PacketContext context) {
-        }
-
-    }
-
     private class TestOpenFlowSwitch implements OpenFlowSwitch {
 
         List<OFPortDesc> ports;
