org.springframework.transaction.interceptor

Class RollbackRuleAttribute

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


    public class RollbackRuleAttribute
    extends java.lang.Object
    implements java.io.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:
    NoRollbackRuleAttribute, Serialized Form
    • Constructor Summary

      Constructors 
      Constructor and Description
      RollbackRuleAttribute(java.lang.Class<?> clazz)
      Create a new instance of the RollbackRuleAttribute class.
      RollbackRuleAttribute(java.lang.String exceptionName)
      Create a new instance of the RollbackRuleAttribute class for the given exceptionName.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      boolean equals(java.lang.Object other) 
      int getDepth(java.lang.Throwable ex)
      Return the depth of the superclass matching.
      java.lang.String getExceptionName()
      Return the pattern for the exception name.
      int hashCode() 
      java.lang.String toString() 
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • RollbackRuleAttribute

        public RollbackRuleAttribute(java.lang.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 (and subclasses).

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

        public RollbackRuleAttribute(java.lang.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 javax.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:
        java.lang.IllegalArgumentException - if the supplied exceptionName is null or empty
    • Method Detail

      • getExceptionName

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

        public int getDepth(java.lang.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(java.lang.Object other)
        Overrides:
        equals in class java.lang.Object
      • hashCode

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

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object