Improve segmented journal actor metrics
[controller.git] / opendaylight / md-sal / cds-access-api / src / main / java / org / opendaylight / controller / cluster / access / commands / DeadTransactionException.java
index 562c0e59b923c27e1611925aab41a61604840777..0f259c1a947ba32d1b8bb1fe3f2dd02677e08357 100644 (file)
@@ -7,25 +7,32 @@
  */
 package org.opendaylight.controller.cluster.access.commands;
 
-import com.google.common.annotations.Beta;
+import com.google.common.collect.ImmutableRangeSet;
+import com.google.common.collect.RangeSet;
+import com.google.common.primitives.UnsignedLong;
 import org.opendaylight.controller.cluster.access.concepts.RequestException;
 
 /**
  * A {@link RequestException} indicating that the backend has received a request to create a transaction which has
  * already been purged.
- *
- * @author Robert Varga
  */
-@Beta
 public final class DeadTransactionException extends RequestException {
+    @java.io.Serial
     private static final long serialVersionUID = 1L;
 
-    public DeadTransactionException(final long lastSeenTransaction) {
-        super("Transaction up to " + Long.toUnsignedString(lastSeenTransaction) + " are accounted for");
+    private final RangeSet<UnsignedLong> purgedIdentifiers;
+
+    public DeadTransactionException(final RangeSet<UnsignedLong> purgedIdentifiers) {
+        super("Transactions " + purgedIdentifiers + " have been purged");
+        this.purgedIdentifiers = ImmutableRangeSet.copyOf(purgedIdentifiers);
     }
 
     @Override
     public boolean isRetriable() {
-        return true;
+        return false;
+    }
+
+    public RangeSet<UnsignedLong> getPurgedIdentifier() {
+        return purgedIdentifiers;
     }
 }