*/
package org.opendaylight.openflowplugin.impl.services;
+import com.google.common.util.concurrent.ListenableFuture;
import org.opendaylight.openflowplugin.api.openflow.device.RequestContext;
-
+import org.opendaylight.yangtools.yang.common.RpcError;
+import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
import org.slf4j.Logger;
public final class RequestContextUtil {
}
- static void closeRequstContext(final RequestContext<?> requestContext) {
+ public static <T> ListenableFuture<RpcResult<T>> closeRequestContextWithRpcError(final RequestContext<T> requestContext, final String errorMessage) {
+ RpcResultBuilder<T> rpcResultBuilder = RpcResultBuilder.<T>failed().withRpcError(RpcResultBuilder.newError(RpcError.ErrorType.APPLICATION, "", errorMessage));
+ requestContext.setResult(rpcResultBuilder.build());
+ closeRequestContext(requestContext);
+ return requestContext.getFuture();
+ }
+
+ public static void closeRequestContext(final RequestContext<?> requestContext) {
try {
requestContext.close();
} catch (Exception e) {
- LOG.debug("Request context wasn't closed. Exception message: {}",e.getMessage());
+ LOG.error("Request context failed to close", e);
}
}
}