code: @Override
      public void cleanUpState(VirtualConnection vc) {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.entry(tc, "cleanUpState");
          }
  
          // Remove the discriminator state from the state map.
          SSLDiscriminatorState discState = (SSLDiscriminatorState) vc.getStateMap().remove(SSL_DISCRIMINATOR_STATE);
          // PK13349 - close the discrimination engine
          closeEngine(discState.getEngine());
          WsByteBuffer decryptedNetBuffer = discState.getDecryptedNetBuffer();
          // Release the decrypted network buffer back to the pool. This shouldn't
          // ever be null, but check anyhow.
          if (decryptedNetBuffer != null) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled()) {
                  Tr.event(tc, "Releasing decryptedNetworkBuffer");
              }
              decryptedNetBuffer.release();
              decryptedNetBuffer = null;
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.exit(tc, "cleanUpState");
          }
      }
docs: This method will be called from the Channel Framework indicating that no
  further calls will be made to the discriminator. All data stored or
  allocated during previous discrimination calls on the input virtual
  connection should be cleaned up.
  
  @param vc