import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.MoreExecutors;
import com.google.common.util.concurrent.SettableFuture;
import java.util.Collection;
import java.util.Collections;
public void close() {
// TODO should we also cancel all read futures?
LOG.debug("{}: Closing read transaction", txIdentifier);
- if (finished == true) {
+ if (finished) {
return;
}
}
@Override
- public void onFailure(final Throwable t) {
+ public void onFailure(final Throwable throwable) {
reg.close();
}
- });
+ }, MoreExecutors.directExecutor());
return Futures.makeChecked(initialDataTreeChangeFuture, ReadFailedException.MAPPER);
}
checkRunning();
LOG.debug("{}: Invoking exists at {}:{}", txIdentifier, store, path);
final Function<Optional<NormalizedNode<?, ?>>, Boolean> transform =
- optionalNode -> optionalNode.isPresent() ? Boolean.TRUE : Boolean.FALSE;
- final ListenableFuture<Boolean> existsResult = Futures.transform(read(store, path), transform);
+ optionalNode -> optionalNode.isPresent() ? Boolean.TRUE : Boolean.FALSE;
+ final ListenableFuture<Boolean> existsResult = Futures.transform(read(store, path), transform,
+ MoreExecutors.directExecutor());
return Futures.makeChecked(existsResult, ReadFailedException.MAPPER);
}
private void checkRunning() {
- Preconditions.checkState(finished == false, "Transaction is already closed");
+ Preconditions.checkState(!finished, "Transaction is already closed");
}
static class ReadShardedListener implements DOMDataTreeListener {
private final SettableFuture<Optional<NormalizedNode<?, ?>>> readResultFuture;
- public ReadShardedListener(final SettableFuture<Optional<NormalizedNode<?, ?>>> future) {
+ ReadShardedListener(final SettableFuture<Optional<NormalizedNode<?, ?>>> future) {
this.readResultFuture = Preconditions.checkNotNull(future);
}
}
}
- for (final NormalizedNode initialState : subtrees.values()) {
+ for (final NormalizedNode<?, ?> initialState : subtrees.values()) {
readResultFuture.set(Optional.of(initialState));
}
}
// We chain all exceptions and return aggregated one
readResultFuture.setException(new DOMDataTreeListeningException("Aggregated DOMDataTreeListening exception",
- causes.stream().reduce((e1, e2) ->
- {
+ causes.stream().reduce((e1, e2) -> {
e1.addSuppressed(e2);
return e1;
}).get()));