VES Heartbeat and Software Management Feature
[oam/tr069-adapter.git] / netconf-server / src / main / java / org / commscope / tr069adapter / netconf / server / helper / ServerPortAllocationHelper.java
index a843e62..f5ff597 100644 (file)
@@ -81,6 +81,7 @@ public class ServerPortAllocationHelper {
     if (availablePorts.isEmpty()) {\r
       LOG.debug(\r
           "All ports are exhausted. Hence cannot allocate a port to start new netconf server.");\r
+      return null;\r
     }\r
 \r
     String port = availablePorts.peek();\r
@@ -104,6 +105,23 @@ public class ServerPortAllocationHelper {
     return port;\r
   }\r
 \r
+  public boolean unReserveServerPort(String port) {\r
+\r
+    try {\r
+      Semaphore semaphore = semaphoreMap.get(port);\r
+      semaphore.acquire();\r
+      availablePorts.add(port);\r
+      semaphore.release();\r
+      LOG.error("Successfully un-reserved the port " + port + " to start netconf server.");\r
+    } catch (InterruptedException e) {\r
+      LOG.warn("Failed to un-reserve the port " + port, e);\r
+      Thread.currentThread().interrupt();\r
+      return false;\r
+    }\r
+\r
+    return true;\r
+  }\r
+\r
   public boolean checkAndReserveServerPort(String port) {\r
 \r
     try {\r