Class RollbackRuleAttribute

java.lang.Object
org.springframework.transaction.interceptor.RollbackRuleAttribute
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
NoRollbackRuleAttribute

public class RollbackRuleAttribute extends Object implements Serializable
Rule determining whether or not a given exception (and any subclasses) should cause a rollback.

Multiple such rules can be applied to determine whether a transaction should commit or rollback after an exception has been thrown.

Since:
09.04.2003
Author:
Rod Johnson
See Also:
  • Field Details

  • Constructor Details

    • RollbackRuleAttribute

      public RollbackRuleAttribute(Class<?> clazz)
      Create a new instance of the RollbackRuleAttribute class.

      This is the preferred way to construct a rollback rule that matches the supplied Exception class, its subclasses, and its nested classes.

      Parameters:
      clazz - throwable class; must be Throwable or a subclass of Throwable
      Throws:
      IllegalArgumentException - if the supplied clazz is not a Throwable type or is null
    • RollbackRuleAttribute

      public RollbackRuleAttribute(String exceptionName)
      Create a new instance of the RollbackRuleAttribute class for the given exceptionName.

      This can be a substring, with no wildcard support at present. A value of "ServletException" would match jakarta.servlet.ServletException and subclasses, for example.

      NB: Consider carefully how specific the pattern is, and whether to include package information (which is not mandatory). For example, "Exception" will match nearly anything, and will probably hide other rules. "java.lang.Exception" would be correct if "Exception" was meant to define a rule for all checked exceptions. With more unusual exception names such as "BaseBusinessException" there's no need to use a fully package-qualified name.

      Parameters:
      exceptionName - the exception name pattern; can also be a fully package-qualified class name
      Throws:
      IllegalArgumentException - if the supplied exceptionName is null or empty
  • Method Details

    • getExceptionName

      public String getExceptionName()
      Return the pattern for the exception name.
    • getDepth

      public int getDepth(Throwable ex)
      Return the depth of the superclass matching.

      0 means ex matches exactly. Returns -1 if there is no match. Otherwise, returns depth with the lowest depth winning.

    • equals

      public boolean equals(@Nullable Object other)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object