Merge "Remove unused method"
[openflowplugin.git] / openflowplugin-impl / src / main / java / org / opendaylight / openflowplugin / impl / device / TransactionChainManager.java
index aded9b26d9ee3d76f6222f9ae172934ddf872885..04b212f0856bad7b7b208a3f4c263c1c0838806e 100644 (file)
@@ -17,6 +17,9 @@ import com.google.common.util.concurrent.ListenableFuture;
 import java.util.Objects;
 import java.util.Optional;
 import java.util.concurrent.CancellationException;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 import javax.annotation.concurrent.GuardedBy;
@@ -87,9 +90,9 @@ class TransactionChainManager implements TransactionChainListener, AutoCloseable
         this.lifecycleService = lifecycleService;
     }
 
-    void initialSubmitWriteTransaction() {
+    boolean initialSubmitWriteTransaction() {
         enableSubmit();
-        submitWriteTransaction();
+        return submitWriteTransaction();
     }
 
     /**
@@ -173,10 +176,21 @@ class TransactionChainManager implements TransactionChainListener, AutoCloseable
             lastSubmittedFuture = submitFuture;
             wTx = null;
 
+            if (initCommit) {
+                try {
+                    submitFuture.get(5L, TimeUnit.SECONDS);
+                } catch (InterruptedException | ExecutionException | TimeoutException ex) {
+                    LOG.error("Exception during INITIAL transaction submitting. ", ex);
+                    return false;
+                }
+                initCommit = false;
+                return true;
+            }
+
             Futures.addCallback(submitFuture, new FutureCallback<Void>() {
                 @Override
                 public void onSuccess(final Void result) {
-                    initCommit = false;
+                    //NOOP
                 }
 
                 @Override
@@ -191,9 +205,6 @@ class TransactionChainManager implements TransactionChainListener, AutoCloseable
                             LOG.error("Exception during transaction submitting. ", t);
                         }
                     }
-                    if (initCommit) {
-                        Optional.ofNullable(lifecycleService).ifPresent(LifecycleService::closeConnection);
-                    }
                 }
             });
         }