docs: @Override
      public void afterDelivery() throws ResourceException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
          {
              Tr.entry(tc, "MessageEndpoint.afterDelivery");
          }
  
          if (!ivSkipCheckState) {
              //method param for checkState can be null since it's only used when the method is a MDB_BUSINESS_METHOD
              checkState(-1, null, AFTER_DELIVERY_METHOD);
          }
  
          try
          {
              if (ivRollbackOnly) // f743-7046
              {
                  ContainerTx currentTx = ivEJSDeployedSupport.getCurrentTx();
                  if (currentTx != null) // d629697
                  {
                      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                      {
                          Tr.debug(tc, "calling setRollbackOnly");
                      }
                      currentTx.setRollbackOnly(); // f743-7046
                  }
              }
  
              // The container postInvoke will complete the TX if the TX is
              // not an imported global TX. Rollback occurs if setRollbackOnly
              // was invoked on the current TX.
              container.postInvoke(this, ivMethodId, ivEJSDeployedSupport);
          } catch (Throwable e)
          {
              //FFDCFilter.processException(e, CLASS_NAME + ".afterDelivery", "1280", this);
              // f743-7046 start
              if (!ivRollbackOnly) // f743-7046
              {
                  FFDCFilter.processException(e, CLASS_NAME + ".afterDelivery", "1280", this);
                  throw new ResourceException("afterDelivery failure", e);
              }
              else
              {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  {
                      Tr.debug(tc, "MessageEndpoint.afterDelivery is eating Throwable: " + e.getMessage()
                                   + " since " + majorJCAVersion + "." + minorJCAVersion + " requires abort of TX and no exceptions to be thrown.", e);
                  }
              } // f743-7046 end
          } finally
          {
              // Release objects no longer needed and ensure the
              // rollback only and imported TX flags are reset to false.
              ivRollbackOnly = false; // f743-7046
              ivImportedTx = false; // f743-7046
              ivEJSDeployedSupport = null;
              ivMDB = null;
              ivMethod = null;
  
              // Enter the ready state.
              synchronized (this)
              {
                  ivState = READY_STATE;
                  ivThread = null;
              }
  
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              {
                  Tr.exit(tc, "MessageEndpoint.afterDelivery");
              }
          }
      }