code: public void complete(VirtualConnection vc) {
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, "complete() called: " + vc);
          }
          // can't do anything with a null VC
          if (null == vc) {
              return;
          }
          Object o = vc.getStateMap().get(CallbackIDs.CALLBACK_HTTPISC);
          if (null == o) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "ERROR: null ISC in complete()");
              }
              return;
          }
          HttpInboundServiceContextImpl sc = (HttpInboundServiceContextImpl) o;
          // need to continue the purge of the request body
          try {
              VirtualConnection rc = null;
              do {
                  WsByteBuffer buffer = sc.getRequestBodyBuffer();
                  if (null != buffer) {
                      buffer.release();
                      rc = sc.getRequestBodyBuffer(this, false);
                  } else {
                      // end of body found
                      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                          Tr.debug(tc, "Reached end of the body being purged");
                      }
                      sc.getLink().close(vc, null);
                      return;
                  }
              } while (null != rc);
          } catch (Exception purgeException) {
              // no FFDC required
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Exception purging request body: " + purgeException);
              }
              sc.getLink().close(vc, purgeException);
          }
          // if we get here then we're waiting for the next callback usage
      }
docs: /*
  @see
  com.ibm.wsspi.channelfw.InterChannelCallback#complete(com.ibm.wsspi.channelfw
  .VirtualConnection)