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;
this.lifecycleService = lifecycleService;
}
- void initialSubmitWriteTransaction() {
+ boolean initialSubmitWriteTransaction() {
enableSubmit();
- submitWriteTransaction();
+ return submitWriteTransaction();
}
/**
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
LOG.error("Exception during transaction submitting. ", t);
}
}
- if (initCommit) {
- Optional.ofNullable(lifecycleService).ifPresent(LifecycleService::closeConnection);
- }
}
});
}