diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/SuspendPusherResource.java b/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/SuspendPusherResource.java
index 1a5266b..d01e259 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/SuspendPusherResource.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/SuspendPusherResource.java
@@ -9,8 +9,8 @@
 
 /**
  * FlowProgrammer REST API implementation: Suspend sending message to switch.
- *
- *   GET /wm/fprog/pusher/suspend/{dpid}/json"
+ * <p/>
+ * GET /wm/fprog/pusher/suspend/{dpid}/json"
  */
 public class SuspendPusherResource extends PusherResource {
 
@@ -23,24 +23,24 @@
      */
     @Get("json")
     public boolean retrieve() {
-    	if (! init()) {
-    		return false;
-    	}
-    	
-    	long dpid;
-    	try {
-    		dpid = HexString.toLong((String)getRequestAttributes().get("dpid"));
-    	} catch (NumberFormatException e) {
-    		log.error("Invalid number format");
-    		return false;
-    	}
+        if (!init()) {
+            return false;
+        }
 
-    	IOFSwitch sw = provider.getSwitches().get(dpid);
-    	if (sw == null) {
-    		log.error("Invalid dpid");
-    		return false;
-    	}
-    	
-    	return pusher.suspend(sw);
+        long dpid;
+        try {
+            dpid = HexString.toLong((String) getRequestAttributes().get("dpid"));
+        } catch (NumberFormatException e) {
+            log.error("Invalid number format");
+            return false;
+        }
+
+        IOFSwitch sw = provider.getSwitches().get(dpid);
+        if (sw == null) {
+            log.error("Invalid dpid");
+            return false;
+        }
+
+        return pusher.suspend(sw);
     }
 }
