docs: @Override
      public boolean getRollbackOnly()
      {
          boolean rollbackOnly = false;
          ContainerTx tx = null;
          IllegalStateException ise = null;
  
          // -----------------------------------------------------------------------
          // getRollbackOnly is not allowed when the container does not have
          // a meaningful transaction context, which includes the tx attrs
          // NotSupported, Never, and Supports.
          // -----------------------------------------------------------------------
  
          // First, obtain the ContainerTx object, to insure the container has a
          // meaningful transaction context.
          tx = container.getCurrentContainerTx();
  
          // If there is not a transaction context, or it is for a Local Tran,
          // then the method is either NotSupported, Never, or Supports
          // (without an inherited global tran), so throw the exception
          // required by the EJB Specification.
          if (tx == null || !tx.isTransactionGlobal())
          {
              ise = new IllegalStateException("getRollbackOnly can not be called " +
                                              "without a Transaction Context");
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  Tr.debug(tc, "getRollbackOnly: " + ise);
  
              throw ise;
          }
  
          // Finally, even if there is a global transaction, getRollbackOnly
          // is not allowed for methods with the Supports tran attribute.
          // The tran attribute for the method may be obtained from the
          // method context (EJSDeployedSupport).                            d161124
          EJSDeployedSupport methodContext = EJSContainer.getMethodContext();
  
          // During commit processing, from a java client or timer, there may not
          // be a method context so, no need to check for Supports.          d177348
          if (methodContext != null)
          {
              EJBMethodInfoImpl methodInfo = methodContext.methodInfo;
              if (methodInfo.getTransactionAttribute() == TransactionAttribute.TX_SUPPORTS)
              {
                  ise = new IllegalStateException("getRollbackOnly can not be called " +
                                                  "from a TX SUPPORTS method");
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                      Tr.debug(tc, "getRollbackOnly: " + ise);
  
                  throw ise;
              }
          }
  
          // Must return true if the transaction has been marked for rollback
          // by the enterprise bean itself, by other enterprise beans, or by
          // other components (outside of the EJB specification scope) of the
          // transaction processing infrastructure.                         d186801
          rollbackOnly = tx.getRollbackOnly() || tx.getGlobalRollbackOnly();
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
              Tr.debug(tc, "getRollbackOnly: " + rollbackOnly + ": " + this);
  
          return rollbackOnly;
      }