package org.multiverse.api.exceptions; /** * A {@link TxnExecutionException} thrown when {@link org.multiverse.api.Txn} access is done while * a commuting function is being evaluated. * * <p>The reason why Txn access is not allowed, is that once other reads/writes are done while executing the commuting * behavior, you can have read/write inconsistencies. E.g. in Clojure the same commuting function can be executed more than * during the execution of a transaction once on a reference, leading to different values every time executed (e.g. the value it * already had inside the transaction, and the most recent committed value when the commuting operation is calculated during * transaction commit. * * @author Peter Veentjer. */ public class IllegalCommuteException extends TxnExecutionException { private static final long serialVersionUID = 0; /** * Creates a new IllegalCommuteException with the provided message. * * @param message the message */ public IllegalCommuteException(String message) { super(message); } /** * Creates a new IllegalCommuteException with the provided message and cause. * * @param message the message * @param cause the cause. */ public IllegalCommuteException(String message, Throwable cause) { super(message, cause); } }