- }
- }
-
- private static class ReadListener implements DOMDataTreeListener {
-
- private Collection<DataTreeCandidate> changes = null;
- private SettableFuture<DataTreeCandidate> readFuture;
-
- @Override
- public synchronized void onDataTreeChanged(@Nonnull final Collection<DataTreeCandidate> changes,
- @Nonnull final Map<DOMDataTreeIdentifier, NormalizedNode<?, ?>> subtrees) {
- Preconditions.checkArgument(changes.size() == 1);
-
- if (this.changes == null) {
- this.changes = changes;
-
- readFuture.set(changes.iterator().next());
- }
- }
-
- @Override
- public void onDataTreeFailed(@Nonnull final Collection<DOMDataTreeListeningException> causes) {
- LOG.error("Read Listener failed. {}", causes);
- }
-
- public synchronized ListenableFuture<DataTreeCandidate> getFirstNotif() {
- if (changes != null) {
- return Futures.immediateFuture(changes.iterator().next());
- }
-
- readFuture = SettableFuture.create();
- return readFuture;
+ } finally {
+ distributedDataStoreClient.close();
+ clientActor.tell(PoisonPill.getInstance(), noSender());