X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fconnect%2Fnetconf%2Fschema%2FNetconfRemoteSchemaYangSourceProvider.java;h=5a528bc418ea386a04b428e047c58fe7d47c74bb;hb=3dcaa12d55eb087636e5ba1996279f0e035663dd;hp=dc90fd3826a4204861a0e4dd69fcbd6436cec9ad;hpb=961b5b9260565194a863a25bd697f171ec2405af;p=controller.git diff --git a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/schema/NetconfRemoteSchemaYangSourceProvider.java b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/schema/NetconfRemoteSchemaYangSourceProvider.java index dc90fd3826..5a528bc418 100644 --- a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/schema/NetconfRemoteSchemaYangSourceProvider.java +++ b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/schema/NetconfRemoteSchemaYangSourceProvider.java @@ -16,7 +16,6 @@ import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import java.io.IOException; import java.io.InputStream; -import java.util.concurrent.ExecutionException; import org.apache.commons.io.IOUtils; import org.opendaylight.controller.sal.connect.netconf.util.NetconfMessageTransformUtil; import org.opendaylight.controller.sal.connect.util.RemoteDeviceId; @@ -97,18 +96,18 @@ public final class NetconfRemoteSchemaYangSourceProvider implements SchemaSource rpc.invokeRpc(GET_SCHEMA_QNAME, getSchemaRequest), new ResultToYangSourceTransformer(id, sourceIdentifier, moduleName, revision)); - // FIXME remove this get, it is only present to wait until source is retrieved + final CheckedFuture checked = Futures.makeChecked(transformed, MAPPER); + + // / FIXME remove this get, it is only present to wait until source is retrieved // (goal is to limit concurrent schema download, since NetconfDevice listener does not handle concurrent messages properly) try { logger.trace("{}: Blocking for {}", id, sourceIdentifier); - transformed.get(); - } catch (final InterruptedException e) { - throw new RuntimeException(e); - } catch (final ExecutionException e) { - throw new IllegalStateException(id + ": Failed while getting source: " + sourceIdentifier, e); + checked.checkedGet(); + } catch (final SchemaSourceException e) { + return Futures.immediateFailedCheckedFuture(e); } - return Futures.makeChecked(transformed, MAPPER); + return checked; } /**