Leftover follow-up commit for "1c8f47754241fea8b9c1463c08539ec31638a5de":

    * Use the "@JsonProperty()" annotation to serialize/deserialize
      objects that don't require any specialized processing.
      Use "@JsonSerialize" and "@JsonDeserialize" only for objects
      that need more specialized processing.

    * Remove FooSerializer JSON classes that are not used/needed anymore.

    * Update the implementation of remaining FooSerializer classes,
      and associated Foo classes.
diff --git a/src/main/java/net/floodlightcontroller/flowcache/web/AddFlowResource.java b/src/main/java/net/floodlightcontroller/flowcache/web/AddFlowResource.java
index f32d124..feb43d3 100644
--- a/src/main/java/net/floodlightcontroller/flowcache/web/AddFlowResource.java
+++ b/src/main/java/net/floodlightcontroller/flowcache/web/AddFlowResource.java
@@ -1,9 +1,15 @@
 package net.floodlightcontroller.flowcache.web;
 
+import java.io.IOException;
+
 import net.floodlightcontroller.flowcache.IFlowService;
 import net.floodlightcontroller.util.FlowId;
 import net.floodlightcontroller.util.FlowPath;
 
+import org.codehaus.jackson.JsonGenerationException;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.codehaus.jackson.map.JsonMappingException;
+import org.codehaus.jackson.map.ObjectMapper;
 import org.restlet.resource.Get;
 import org.restlet.resource.ServerResource;
 import org.slf4j.Logger;
@@ -26,14 +32,29 @@
             return result;
 	}
 
+	//
 	// Extract the arguments
+	// NOTE: The "flow" is specified in JSON format.
+	//
+	ObjectMapper mapper = new ObjectMapper();
 	String flowPathStr = (String) getRequestAttributes().get("flow");
-	FlowPath flowPath = new FlowPath(flowPathStr);
-
+	FlowPath flowPath = null;
 	log.debug("Add Flow Path: " + flowPathStr);
+	try {
+	    flowPath = mapper.readValue(flowPathStr, FlowPath.class);
+	} catch (JsonGenerationException e) {
+	    e.printStackTrace();
+	} catch (JsonMappingException e) {
+	    e.printStackTrace();
+	} catch (IOException e) {
+	    e.printStackTrace();
+	}
 
-	if (flowService.addFlow(flowPath, result) != true) {
-	    result = new FlowId();	// Error: Empty Flow Id
+	// Process the request
+	if (flowPath != null) {
+	    if (flowService.addFlow(flowPath, result) != true) {
+		result = new FlowId();		// Error: Return empty Flow Id
+	    }
 	}
 
         return result;