import com.google.common.util.concurrent.CheckedFuture;
import com.google.common.util.concurrent.Futures;
import java.util.function.Consumer;
+import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.concurrent.NotThreadSafe;
import org.opendaylight.controller.cluster.access.commands.AbortLocalTransactionRequest;
private final TransactionIdentifier identifier;
- LocalProxyTransaction(final ProxyHistory parent, final TransactionIdentifier identifier) {
- super(parent);
+ LocalProxyTransaction(final ProxyHistory parent, final TransactionIdentifier identifier, final boolean isDone) {
+ super(parent, isDone);
this.identifier = Preconditions.checkNotNull(identifier);
}
return identifier;
}
- abstract DataTreeSnapshot readOnlyView();
+ abstract @Nonnull DataTreeSnapshot readOnlyView();
abstract void applyForwardedModifyTransactionRequest(ModifyTransactionRequest request,
@Nullable Consumer<Response<?, ?>> callback);
} else if (handleReadRequest(request, callback)) {
// No-op
} else if (request instanceof TransactionPurgeRequest) {
- sendPurge(callback);
+ enqueuePurge(callback);
} else {
throw new IllegalArgumentException("Unhandled request " + request);
}
}
});
- successor.ensureSealed();
-
+ successor.sealOnly();
final ModifyTransactionRequest successorReq = successor.commitRequest(req.isCoordinated());
successor.sendRequest(successorReq, callback);
} else if (request instanceof AbortLocalTransactionRequest) {
successor.abort();
} else if (request instanceof TransactionPurgeRequest) {
LOG.debug("Forwarding purge {} to successor {}", request, successor);
- successor.sendPurge(callback);
+ successor.enqueuePurge(callback);
+ } else if (request instanceof ModifyTransactionRequest) {
+ successor.handleForwardedRequest(request, callback);
} else {
throw new IllegalArgumentException("Unhandled request" + request);
}
if (request instanceof AbortLocalTransactionRequest) {
successor.sendAbort(request, callback);
} else if (request instanceof TransactionPurgeRequest) {
- successor.sendPurge(callback);
+ successor.enqueuePurge(callback);
} else {
throw new IllegalArgumentException("Unhandled request" + request);
}