code: @Override
      public final synchronized void discard() {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled())
              Tr.entry(tc, "discard : " + this);
  
          if (removed || discarded)
              return;
  
          destroyNotRemove();
  
          if (pmiBean != null) {
              pmiBean.beanDiscarded(); // d647928
              pmiBean.discardCount(); // F743-27070
          }
  
          discarded = true;
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(tc, "discard");
      }
docs: Mark this <code>BeanO</code> instance as discarded. This method must
  be used instead of the destroy method when a uncheck or system
  exception occurs to ensure no lifecycle callback (e.g. ejbRemove
  or pre-destroy interceptor method) method is invoked as required
  by the EJB spec. <p>