X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatabroker%2Factors%2Fdds%2FAbstractProxyTransaction.java;h=14ad54699161a60719ea846d353c46e73fb4adea;hb=HEAD;hp=461c90f6059d911bb41a9c3ece956f138610a1af;hpb=118cd0216b0c6b0ec1a01689ec2025a13e090861;p=controller.git
diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractProxyTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractProxyTransaction.java
index 461c90f605..14ad546991 100644
--- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractProxyTransaction.java
+++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractProxyTransaction.java
@@ -65,10 +65,9 @@ import org.slf4j.LoggerFactory;
*
* This class interacts with the queueing mechanism in ClientActorBehavior, hence once we arrive at a decision
* to use either a local or remote implementation, we are stuck with it. We can re-evaluate on the next transaction.
- *
- * @author Robert Varga
*/
-abstract class AbstractProxyTransaction implements Identifiable {
+abstract sealed class AbstractProxyTransaction implements Identifiable
+ permits LocalProxyTransaction, RemoteProxyTransaction {
/**
* Marker object used instead of read-type of requests, which are satisfied only once. This has a lower footprint
* and allows compressing multiple requests into a single entry. This class is not thread-safe.
@@ -140,7 +139,7 @@ abstract class AbstractProxyTransaction implements Identifiable optState = flushState();
if (optState.isPresent()) {
- forwardToSuccessor(successor, optState.get(), null);
+ forwardToSuccessor(successor, optState.orElseThrow(), null);
}
successor.predecessorSealed();
}
@@ -734,7 +733,7 @@ abstract class AbstractProxyTransaction implements Identifiable optState = flushState();
if (optState.isPresent()) {
- successor.handleReplayedRemoteRequest(optState.get(), null, enqueuedTicks);
+ successor.handleReplayedRemoteRequest(optState.orElseThrow(), null, enqueuedTicks);
}
if (successor.markSealed()) {
successor.sealAndSend(OptionalLong.of(enqueuedTicks));
@@ -855,7 +854,11 @@ abstract class AbstractProxyTransaction implements Identifiable request,
@Nullable Consumer> callback, long enqueuedTicks);
- private static IllegalStateException unhandledResponseException(final Response, ?> resp) {
+ static final @NonNull IllegalArgumentException unhandledRequest(final TransactionRequest> request) {
+ return new IllegalArgumentException("Unhandled request " + request);
+ }
+
+ private static @NonNull IllegalStateException unhandledResponseException(final Response, ?> resp) {
return new IllegalStateException("Unhandled response " + resp.getClass());
}