Fix Sonar complains
[oam/nf-oam-adopter.git] / ves-nf-oam-adopter / ves-nf-oam-adopter-snmp-manager / src / main / java / org / o / ran / oam / nf / oam / adopter / snmp / manager / SnmpTrapListener.java
index 0784b3e..09c7ff3 100644 (file)
@@ -61,29 +61,29 @@ final class SnmpTrapListener implements CommandResponder, Runnable {
         this.timeZoneOffsetService = timeZoneOffsetService;
     }
 
-    @SuppressFBWarnings("WA_NOT_IN_LOOP")
     @Override
     public synchronized void run() {
-        try {
-            final UdpAddress udpAddress = new UdpAddress(hostPortAddress);
-            final DefaultUdpTransportMapping snmpTarget = new DefaultUdpTransportMapping(udpAddress);
+        try (final DefaultUdpTransportMapping snmpTarget = new DefaultUdpTransportMapping(
+                new UdpAddress(hostPortAddress))) {
             final ThreadPool threadPool = ThreadPool.create("SNMP_V2_Listener", THREADS_SIZE);
             final MessageDispatcher dispatcher =
                     new MultiThreadedMessageDispatcher(threadPool, new MessageDispatcherImpl());
             dispatcher.addMessageProcessingModel(new MPv2c());
+            listenSnmp(dispatcher, snmpTarget);
+        } catch (final IOException e) {
+            LOG.error("Error occurred while listening to SNMP messages: {}", e.getMessage());
+        }
+    }
 
-            final Snmp snmp = new Snmp(dispatcher, snmpTarget);
+    @SuppressFBWarnings("WA_NOT_IN_LOOP")
+    private void listenSnmp(final MessageDispatcher dispatcher, final DefaultUdpTransportMapping snmpTarget) {
+        try (final Snmp snmp = new Snmp(dispatcher, snmpTarget)) {
             snmp.addCommandResponder(this);
-
             snmpTarget.listen();
             LOG.debug("Listening on {}", snmpTarget);
-            try {
-                wait();
-            } catch (final InterruptedException ex) {
-                Thread.currentThread().interrupt();
-            }
-        } catch (final IOException e) {
-            LOG.error("Error occurred while listening to SNMP messages: {}", e.getMessage());
+            wait();
+        } catch (final InterruptedException | IOException ex) {
+            Thread.currentThread().interrupt();
         }
     }