code: public Boolean getApplicationExceptionRollback(Throwable t) // F743-14982
      {
          Class<?> klass = t.getClass();
          ApplicationException ae = getApplicationException(klass);
          Boolean rollback = null;
  
          if (ae != null)
          {
              rollback = ae.rollback();
          }
          // Prior to EJB 3.1, the specification did not explicitly state that
          // application exception status was inherited, so for efficiency, we
          // assumed it did not.  The EJB 3.1 specification clarified this but
          // used a different default.
          else if (!ContainerProperties.EE5Compatibility) // F743-14982CdRv
          {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
              {
                  Tr.debug(tc, "searching for inherited application exception for " + klass.getName());
              }
  
              for (Class<?> superClass = klass.getSuperclass(); superClass != Throwable.class; superClass = superClass.getSuperclass())
              {
                  ae = getApplicationException(superClass);
                  if (ae != null)
                  {
                      // The exception class itself has already been checked.
                      // If a super-class indicates that application exception
                      // status is not inherited, then the exception is not
                      // an application exception, so leave rollback null.
                      if (ae.inherited())
                      {
                          rollback = ae.rollback();
                      }
                      break;
                  }
              }
          }
  
          return rollback;
      }
docs: Gets the application exception and rollback status of the specified
  exception.
  
  @param t the exception
  @return null if the exception is not an application exception;
  otherwise, Boolean.TRUE if the exception should cause rollback
  or Boolean.FALSE if it should not