diff --git a/providers/pcep/tunnel/src/main/java/org/onosproject/provider/pcep/tunnel/impl/TunnelStatsCollector.java b/providers/pcep/tunnel/src/main/java/org/onosproject/provider/pcep/tunnel/impl/TunnelStatsCollector.java
index ab3e752..e64daa4 100644
--- a/providers/pcep/tunnel/src/main/java/org/onosproject/provider/pcep/tunnel/impl/TunnelStatsCollector.java
+++ b/providers/pcep/tunnel/src/main/java/org/onosproject/provider/pcep/tunnel/impl/TunnelStatsCollector.java
@@ -19,14 +19,14 @@
 
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.jboss.netty.util.HashedWheelTimer;
-import org.jboss.netty.util.Timeout;
-import org.jboss.netty.util.TimerTask;
 import org.onlab.util.Timer;
 import org.onosproject.pcep.api.PcepController;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import io.netty.util.Timeout;
+import io.netty.util.TimerTask;
+
 import java.util.concurrent.TimeUnit;
 
 /*
@@ -39,7 +39,6 @@
     protected PcepController controller;
 
     private int refreshInterval;
-    private final HashedWheelTimer timer = Timer.getTimer();
 
     private String pcepTunnelId;
     private Timeout timeout;
@@ -47,7 +46,7 @@
 
 
     /**
-     * Greate a tunnel status collector object.
+     * Create a tunnel status collector object.
      *
      * @param id              tunnel whose status data will be collected
      * @param refreshInterval time interval for collecting statistic
@@ -68,7 +67,7 @@
         if (!stopped && !timeout.isCancelled()) {
             log.trace("Scheduling stats collection in {} seconds for {}",
                       this.refreshInterval, pcepTunnelId);
-            timeout.getTimer().newTimeout(this, refreshInterval, TimeUnit.SECONDS);
+            timeout.timer().newTimeout(this, refreshInterval, TimeUnit.SECONDS);
         }
 
     }
@@ -88,7 +87,7 @@
     public synchronized void start() {
         log.info("Starting Tunnel Stats collection thread for {}", pcepTunnelId);
         stopped = false;
-        timeout = timer.newTimeout(this, 1, TimeUnit.SECONDS);
+        timeout = Timer.newTimeout(this, 1, TimeUnit.SECONDS);
     }
 
     /**
