code: @Override
      public void discard() {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled()) {
              Tr.entry(tc, "discard");
          }
  
          discarded = true;
  
          if (state == DESTROYED) {
              return;
          }
  
          setState(DESTROYED);
  
          destroyHandleList();
  
          // Release any JCDI creational contexts that may exist.         F743-29174
          this.releaseManagedObjectContext();
  
          if (pmiBean != null) {
              pmiBean.discardCount(); // F743-27070
              pmiBean.beanDestroyed();
          }
  
          if (isTraceOn && tc.isEntryEnabled()) {
              Tr.exit(tc, "discard");
          }
      }
docs: 167937 - rewrote entire method.