We need to handle purging requests on reconnect, too.
Change-Id: I02acaf2dd7d9209f48148f76b3ca3aa4bbc64b5e
Signed-off-by: Robert Varga <rovarga@cisco.com>
});
}
- private void purge() {
+ void purge() {
successfulRequests.clear();
final TransactionRequest<?> req = new TransactionPurgeRequest(getIdentifier(), nextSequence(), localActor());
import org.opendaylight.controller.cluster.access.commands.ModifyTransactionRequest;
import org.opendaylight.controller.cluster.access.commands.ReadTransactionRequest;
import org.opendaylight.controller.cluster.access.commands.ReadTransactionSuccess;
+import org.opendaylight.controller.cluster.access.commands.TransactionPurgeRequest;
import org.opendaylight.controller.cluster.access.commands.TransactionRequest;
import org.opendaylight.controller.cluster.access.concepts.Response;
import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
final YangInstanceIdentifier path = ((ExistsTransactionRequest) request).getPath();
final boolean result = readOnlyView().readNode(path).isPresent();
callback.accept(new ExistsTransactionSuccess(request.getTarget(), request.getSequence(), result));
+ } else if (request instanceof TransactionPurgeRequest) {
+ purge();
} else {
throw new IllegalArgumentException("Unhandled request " + request);
}
final Consumer<Response<?, ?>> callback) {
if (request instanceof AbortLocalTransactionRequest) {
successor.sendAbort(request, callback);
+ } else if (request instanceof TransactionPurgeRequest) {
+ successor.purge();
} else {
throw new IllegalArgumentException("Unhandled request" + request);
}
import org.opendaylight.controller.cluster.access.commands.CommitLocalTransactionRequest;
import org.opendaylight.controller.cluster.access.commands.ModifyTransactionRequest;
import org.opendaylight.controller.cluster.access.commands.PersistenceProtocol;
+import org.opendaylight.controller.cluster.access.commands.TransactionPurgeRequest;
import org.opendaylight.controller.cluster.access.commands.TransactionRequest;
import org.opendaylight.controller.cluster.access.concepts.Response;
import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
} else if (request instanceof AbortLocalTransactionRequest) {
LOG.debug("Forwarding abort {} to successor {}", request, successor);
successor.abort();
+ } else if (request instanceof TransactionPurgeRequest) {
+ LOG.debug("Forwarding purge {} to successor {}", request, successor);
+ successor.purge();
} else {
throw new IllegalArgumentException("Unhandled request" + request);
}
import org.opendaylight.controller.cluster.access.commands.TransactionMerge;
import org.opendaylight.controller.cluster.access.commands.TransactionModification;
import org.opendaylight.controller.cluster.access.commands.TransactionPreCommitRequest;
+import org.opendaylight.controller.cluster.access.commands.TransactionPurgeRequest;
import org.opendaylight.controller.cluster.access.commands.TransactionRequest;
import org.opendaylight.controller.cluster.access.commands.TransactionWrite;
import org.opendaylight.controller.cluster.access.concepts.Response;
} else if (request instanceof AbortLocalTransactionRequest) {
LOG.debug("Forwarding abort {} to successor {}", request, successor);
successor.abort();
+ } else if (request instanceof TransactionPurgeRequest) {
+ LOG.debug("Forwarding purge {} to successor {}", request, successor);
+ successor.purge();
} else {
throw new IllegalArgumentException("Unhandled request" + request);
}