Cleanup NetconfDeviceCommunicator a bit 94/98294/1
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 4 Nov 2021 22:26:02 +0000 (23:26 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 4 Nov 2021 22:26:02 +0000 (23:26 +0100)
We can bail early from processing to make the code a bit more linear.

Change-Id: I61f3526761b30aa9cf78f9c12ba3763ecffed0b4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/listener/NetconfDeviceCommunicator.java

index 28826c28053da7096de28a9d47503fe071f847c4..d391bb7ad0e113b89be015f2522316d41b28714d 100644 (file)
@@ -97,12 +97,12 @@ public class NetconfDeviceCommunicator
             final RemoteDeviceId id,
             final RemoteDevice<NetconfSessionPreferences, NetconfMessage, NetconfDeviceCommunicator> remoteDevice,
             final Optional<UserPreferences> 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.<NetconfMessage>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.<NetconfMessage>failed()
+                .withRpcError(NetconfMessageTransformUtil.toRpcError(e))
+                .build());
 
-                request.future.set(RpcResultBuilder.<NetconfMessage>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.<NetconfMessage>failed()
+                .withRpcError(NetconfMessageTransformUtil.toRpcError(e))
+                .build());
+            return;
         }
+
+        request.future.set(RpcResultBuilder.success(message).build());
     }
 
     private static String msgToS(final NetconfMessage msg) {