From: Robert Varga Date: Thu, 4 Nov 2021 22:26:02 +0000 (+0100) Subject: Cleanup NetconfDeviceCommunicator a bit X-Git-Tag: v2.0.8~5 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=e6971916211a523d2b4e283b4d5e976a70703fd7;p=netconf.git Cleanup NetconfDeviceCommunicator a bit We can bail early from processing to make the code a bit more linear. Change-Id: I61f3526761b30aa9cf78f9c12ba3763ecffed0b4 Signed-off-by: Robert Varga --- diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/listener/NetconfDeviceCommunicator.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/listener/NetconfDeviceCommunicator.java index 28826c2805..d391bb7ad0 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/listener/NetconfDeviceCommunicator.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/listener/NetconfDeviceCommunicator.java @@ -97,12 +97,12 @@ public class NetconfDeviceCommunicator final RemoteDeviceId id, final RemoteDevice remoteDevice, final Optional overrideNetconfCapabilities, final int rpcMessageLimit) { - this.concurentRpcMsgs = rpcMessageLimit; + concurentRpcMsgs = rpcMessageLimit; this.id = id; this.remoteDevice = remoteDevice; this.overrideNetconfCapabilities = overrideNetconfCapabilities; - this.firstConnectionFuture = SettableFuture.create(); - this.semaphore = rpcMessageLimit > 0 ? new Semaphore(rpcMessageLimit) : null; + firstConnectionFuture = SettableFuture.create(); + semaphore = rpcMessageLimit > 0 ? new Semaphore(rpcMessageLimit) : null; } @Override @@ -306,50 +306,51 @@ public class NetconfDeviceCommunicator sessionLock.unlock(); } - if (request != null) { - - if (FailedNetconfMessage.class.isInstance(message)) { - request.future.set(NetconfMessageTransformUtil.toRpcResult((FailedNetconfMessage) message)); - return; - } - - LOG.debug("{}: Message received {}", id, message); + if (request == null) { + // No matching request, bail out + return; + } - if (LOG.isTraceEnabled()) { - LOG.trace("{}: Matched request: {} to response: {}", id, msgToS(request.request), msgToS(message)); - } - try { - NetconfMessageTransformUtil.checkValidReply(request.request, message); - } catch (final NetconfDocumentedException e) { - LOG.warn( - "{}: Invalid request-reply match," - + "reply message contains different message-id, request: {}, response: {}", - id, msgToS(request.request), msgToS(message), e); + if (message instanceof FailedNetconfMessage) { + request.future.set(NetconfMessageTransformUtil.toRpcResult((FailedNetconfMessage) message)); + return; + } - request.future.set(RpcResultBuilder.failed() - .withRpcError(NetconfMessageTransformUtil.toRpcError(e)).build()); + LOG.debug("{}: Message received {}", id, message); - //recursively processing message to eventually find matching request - processMessage(message); + if (LOG.isTraceEnabled()) { + LOG.trace("{}: Matched request: {} to response: {}", id, msgToS(request.request), msgToS(message)); + } - return; - } + try { + NetconfMessageTransformUtil.checkValidReply(request.request, message); + } catch (final NetconfDocumentedException e) { + LOG.warn("{}: Invalid request-reply match, reply message contains different message-id, " + + "request: {}, response: {}", id, msgToS(request.request), msgToS(message), e); - try { - NetconfMessageTransformUtil.checkSuccessReply(message); - } catch (final NetconfDocumentedException e) { - LOG.warn( - "{}: Error reply from remote device, request: {}, response: {}", - id, msgToS(request.request), msgToS(message), e); + request.future.set(RpcResultBuilder.failed() + .withRpcError(NetconfMessageTransformUtil.toRpcError(e)) + .build()); - request.future.set(RpcResultBuilder.failed() - .withRpcError(NetconfMessageTransformUtil.toRpcError(e)).build()); - return; - } + //recursively processing message to eventually find matching request + processMessage(message); + return; + } - request.future.set(RpcResultBuilder.success(message).build()); + try { + NetconfMessageTransformUtil.checkSuccessReply(message); + } catch (final NetconfDocumentedException e) { + LOG.warn("{}: Error reply from remote device, request: {}, response: {}", + id, msgToS(request.request), msgToS(message), e); + + request.future.set(RpcResultBuilder.failed() + .withRpcError(NetconfMessageTransformUtil.toRpcError(e)) + .build()); + return; } + + request.future.set(RpcResultBuilder.success(message).build()); } private static String msgToS(final NetconfMessage msg) {