X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-remoterpc-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fremote%2Frpc%2FRemoteDOMRpcFuture.java;h=d5e46a9a84f8b800af5c979f06def05ec08d3d34;hb=refs%2Fchanges%2F11%2F80211%2F6;hp=74e98e447adf8236d79ef9c910bbd891aba3fb32;hpb=aead44997ca7c9bf31be83ebcdd6b01aed23b8f3;p=controller.git diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RemoteDOMRpcFuture.java b/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RemoteDOMRpcFuture.java index 74e98e447a..d5e46a9a84 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RemoteDOMRpcFuture.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RemoteDOMRpcFuture.java @@ -7,17 +7,17 @@ */ package org.opendaylight.controller.remote.rpc; +import static java.util.Objects.requireNonNull; + import akka.dispatch.OnComplete; -import com.google.common.base.Preconditions; import com.google.common.util.concurrent.AbstractFuture; -import com.google.common.util.concurrent.CheckedFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import org.opendaylight.controller.md.sal.dom.api.DOMRpcException; -import org.opendaylight.controller.md.sal.dom.api.DOMRpcResult; -import org.opendaylight.controller.md.sal.dom.spi.DefaultDOMRpcResult; import org.opendaylight.controller.remote.rpc.messages.RpcResponse; +import org.opendaylight.mdsal.dom.api.DOMRpcException; +import org.opendaylight.mdsal.dom.api.DOMRpcResult; +import org.opendaylight.mdsal.dom.spi.DefaultDOMRpcResult; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.slf4j.Logger; @@ -25,14 +25,14 @@ import org.slf4j.LoggerFactory; import scala.concurrent.ExecutionContext; import scala.concurrent.Future; -class RemoteDOMRpcFuture extends AbstractFuture implements CheckedFuture { +final class RemoteDOMRpcFuture extends AbstractFuture { private static final Logger LOG = LoggerFactory.getLogger(RemoteDOMRpcFuture.class); private final QName rpcName; private RemoteDOMRpcFuture(final QName rpcName) { - this.rpcName = Preconditions.checkNotNull(rpcName, "rpcName"); + this.rpcName = requireNonNull(rpcName, "rpcName"); } public static RemoteDOMRpcFuture create(final QName rpcName) { @@ -49,39 +49,37 @@ class RemoteDOMRpcFuture extends AbstractFuture implements Checked } @Override - public DOMRpcResult checkedGet() throws DOMRpcException { + public DOMRpcResult get() throws InterruptedException, ExecutionException { try { - return get(); - } catch (final ExecutionException e) { + return super.get(); + } catch (ExecutionException e) { throw mapException(e); - } catch (final InterruptedException e) { - throw new RemoteDOMRpcException("Interruped while invoking RPC", e); } } @Override - public DOMRpcResult checkedGet(final long timeout, final TimeUnit unit) throws TimeoutException, DOMRpcException { + public DOMRpcResult get(final long timeout, final TimeUnit unit) + throws InterruptedException, ExecutionException, TimeoutException { try { - return get(timeout, unit); + return super.get(timeout, unit); } catch (final ExecutionException e) { throw mapException(e); - } catch (final InterruptedException e) { - throw new RemoteDOMRpcException("Interruped while invoking RPC", e); } } - private static DOMRpcException mapException(final ExecutionException ex) { + private static ExecutionException mapException(final ExecutionException ex) { final Throwable cause = ex.getCause(); if (cause instanceof DOMRpcException) { - return (DOMRpcException) cause; + return ex; } - return new RemoteDOMRpcException("Exception during invoking RPC", ex); + return new ExecutionException(ex.getMessage(), + new RemoteDOMRpcException("Exception during invoking RPC", ex.getCause())); } private final class FutureUpdater extends OnComplete { @Override - public void onComplete(final Throwable error, final Object reply) throws Throwable { + public void onComplete(final Throwable error, final Object reply) { if (error != null) { RemoteDOMRpcFuture.this.failNow(error); } else if (reply instanceof RpcResponse) { @@ -99,5 +97,4 @@ class RemoteDOMRpcFuture extends AbstractFuture implements Checked } } } - }