docs: public void error(VirtualConnection vc, TCPReadRequestContext req, IOException ioe) {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.entry(tc, "error: " + vc);
          }
          // This can legitemately happen if the client closes
          // the connection before sending data - we will always get
          // an exception in that case
          if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled()) {
              Tr.event(tc, "Error occurred during initial read of request from client: " + req.getInterface().getRemoteAddress() + " " + req.getInterface().getRemotePort() + " : "
                           + ioe);
          }
  
          // release any WsByteBuffers that were allocated for this request
          WsByteBuffer buffArray[] = req.getBuffers();
          if (buffArray != null) {
              for (int i = 0; i < buffArray.length; i++) {
                  if (buffArray[i] != null) {
                      buffArray[i].release();
                  }
              }
          }
          req.setBuffers(null);
  
          // if read timed out, send to discriminators so that they
          // can send error response if necessary
          if (ioe != null && ioe instanceof SocketTimeoutException) {
              sendToDiscriminators(vc, req, true);
          } else {
              // Destroy the connection link
              ((TCPReadRequestContextImpl) req).getTCPConnLink().close(vc, ioe);
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.exit(tc, "error");
          }
      }