Fixed bug in Flows REST API for handling flows with no app ID
Change-Id: I67dc2bd7a1f5df71f29b16bed70922eba8cbae27
diff --git a/core/common/src/main/java/org/onosproject/codec/impl/FlowEntryCodec.java b/core/common/src/main/java/org/onosproject/codec/impl/FlowEntryCodec.java
index 3f581be..793b6b1 100644
--- a/core/common/src/main/java/org/onosproject/codec/impl/FlowEntryCodec.java
+++ b/core/common/src/main/java/org/onosproject/codec/impl/FlowEntryCodec.java
@@ -15,15 +15,15 @@
*/
package org.onosproject.codec.impl;
+import com.fasterxml.jackson.databind.node.ObjectNode;
import org.onosproject.codec.CodecContext;
import org.onosproject.codec.JsonCodec;
+import org.onosproject.core.ApplicationId;
import org.onosproject.core.CoreService;
import org.onosproject.net.flow.FlowEntry;
import org.onosproject.net.flow.TrafficSelector;
import org.onosproject.net.flow.TrafficTreatment;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
import static com.google.common.base.Preconditions.checkNotNull;
/**
@@ -37,10 +37,14 @@
CoreService service = context.getService(CoreService.class);
+ ApplicationId appId = service.getAppId(flowEntry.appId());
+
+ String strAppId = (appId == null) ? "<none>" : appId.name();
+
final ObjectNode result = context.mapper().createObjectNode()
.put("id", Long.toString(flowEntry.id().value()))
.put("tableId", flowEntry.tableId())
- .put("appId", service.getAppId(flowEntry.appId()).name())
+ .put("appId", strAppId)
.put("groupId", flowEntry.groupId().id())
.put("priority", flowEntry.priority())
.put("timeout", flowEntry.timeout())