Skip to content

Commit d9fd50a

Browse files
committed
Fix class cast issue arising after ephemeral read eviction
Patch by Alex Petrov; reviewed by Benedict Elliott Smith for CASSANDRA-20256
1 parent 344c20b commit d9fd50a

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

accord-core/src/main/java/accord/local/cfk/Updating.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@
7373
import static accord.local.cfk.Utils.removeUnmanaged;
7474
import static accord.local.cfk.Utils.validateMissing;
7575
import static accord.primitives.Routable.Domain.Range;
76+
import static accord.primitives.SaveStatus.Uninitialised;
7677
import static accord.primitives.Timestamp.Flag.UNSTABLE;
7778
import static accord.primitives.Txn.Kind.EphemeralRead;
7879
import static accord.primitives.Txn.Kind.ExclusiveSyncPoint;
@@ -787,6 +788,10 @@ static CommandsForKeyUpdate updateUnmanaged(CommandsForKey cfk, SafeCommand safe
787788
if (safeCommand.current().hasBeen(Status.Truncated))
788789
return cfk;
789790

791+
Command orig = safeCommand.current();
792+
if (orig.saveStatus() == Uninitialised && orig.txnId().is(EphemeralRead))
793+
return cfk;
794+
790795
Command.Committed command = safeCommand.current().asCommitted();
791796
TxnId waitingTxnId = command.txnId();
792797
// used only to decide if an executeAt is included _on the assumption the TxnId is_. For ?[EX] this is all timestamps

0 commit comments

Comments
 (0)