package org.infinispan.xsite; import java.util.Map; import javax.transaction.Transaction; /** * @author Mircea Markus * @since 5.2 */ public class CountingCustomFailurePolicy extends AbstractCustomFailurePolicy { public static volatile boolean PUT_INVOKED; public static volatile boolean REMOVE_INVOKED; public static volatile boolean REPLACE_INVOKED; public static volatile boolean CLEAR_INVOKED; public static volatile boolean PUT_ALL_INVOKED; public static volatile boolean PREPARE_INVOKED; public static volatile boolean ROLLBACK_INVOKED; public static volatile boolean COMMIT_INVOKED; @Override public void handlePutFailure(String site, Object key, Object value, boolean putIfAbsent) { PUT_INVOKED = true; } @Override public void handleRemoveFailure(String site, Object key, Object oldValue) { REMOVE_INVOKED = true; } @Override public void handleReplaceFailure(String site, Object key, Object oldValue, Object newValue) { REPLACE_INVOKED = true; } @Override public void handleClearFailure(String site) { CLEAR_INVOKED = true; } @Override public void handlePutAllFailure(String site, Map map) { PUT_ALL_INVOKED = true; } @Override public void handlePrepareFailure(String site, Transaction transaction) { if (transaction == null) throw new IllegalStateException(); PREPARE_INVOKED = true; throw new BackupFailureException(); } @Override public void handleRollbackFailure(String site, Transaction transaction) { ROLLBACK_INVOKED = true; } @Override public void handleCommitFailure(String site, Transaction transaction) { COMMIT_INVOKED = true; } }