RequestContext is closed with RpcError set to its future
[openflowplugin.git] / openflowplugin-impl / src / main / java / org / opendaylight / openflowplugin / impl / services / RequestContextUtil.java
index 9c54e4520f7ecb9858c991d27aed10d44d7d0532..05d45d25b624512c066083d8fd09289d13b74ba6 100644 (file)
@@ -8,7 +8,8 @@
 package org.opendaylight.openflowplugin.impl.services;
 
 import org.opendaylight.openflowplugin.api.openflow.device.RequestContext;
-
+import org.opendaylight.yangtools.yang.common.RpcError;
+import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
 import org.slf4j.Logger;
 
 public final class RequestContextUtil {
@@ -20,11 +21,18 @@ public final class RequestContextUtil {
     }
 
 
+    public static void closeRequestContextWithRpcError(final RequestContext<?> requestContext, String errorMessage) {
+
+        RpcResultBuilder rpcResultBuilder = RpcResultBuilder.failed().withRpcError(RpcResultBuilder.newError(RpcError.ErrorType.APPLICATION, "", errorMessage));
+        requestContext.getFuture().set(rpcResultBuilder.build());
+        closeRequstContext(requestContext);
+    }
+
     public static void closeRequstContext(final RequestContext<?> requestContext) {
         try {
             requestContext.close();
         } catch (Exception e) {
-            LOG.debug("Request context wasn't closed. Exception message: {}",e.getMessage());
+            LOG.debug("Request context wasn't closed. Exception message: {}", e.getMessage());
         }
     }
 }