diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/ProcessorViewMessageHandler.java b/web/gui/src/main/java/org/onosproject/ui/impl/ProcessorViewMessageHandler.java
index 652116c..5d97504 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/ProcessorViewMessageHandler.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/ProcessorViewMessageHandler.java
@@ -40,6 +40,10 @@
     private static final String PROCESSOR_DATA_RESP = "processorDataResponse";
     private static final String PROCESSORS = "processors";
 
+    private static final String OBSERVER = "observer";
+    private static final String DIRECTOR = "director";
+    private static final String ADVISOR = "advisor";
+
     private static final String ID = "id";
     private static final String TYPE = "type";
     private static final String PRIORITY = "priority";
@@ -58,7 +62,7 @@
         return ImmutableSet.of(new ProcessorDataRequest());
     }
 
-    // handler for link table requests
+    // handler for packet processor table requests
     private final class ProcessorDataRequest extends TableRequestHandler {
         private ProcessorDataRequest() {
             super(PROCESSOR_DATA_REQ, PROCESSOR_DATA_RESP, PROCESSORS);
@@ -70,11 +74,6 @@
         }
 
         @Override
-        protected String defaultColumnId() {
-            return ID;
-        }
-
-        @Override
         protected TableModel createTableModel() {
             TableModel tm = super.createTableModel();
             tm.setFormatter(AVG_MS, new NumberFormatter());
@@ -93,12 +92,11 @@
                     .cell(PRIORITY, processorPriority(entry.priority()))
                     .cell(PROCESSOR, entry.processor().getClass().getName())
                     .cell(PACKETS, entry.invocations())
-                    .cell(AVG_MS, entry.averageNanos() / NANOS_IN_MS);
+                    .cell(AVG_MS, (double) entry.averageNanos() / NANOS_IN_MS);
         }
 
         private String processorType(int p) {
-            return p > DIRECTOR_MAX ? "observer" :
-                    p > ADVISOR_MAX ? "director" : "observer";
+            return p > DIRECTOR_MAX ? OBSERVER : p > ADVISOR_MAX ? DIRECTOR : ADVISOR;
         }
 
         private int processorPriority(int p) {
