docs: private void sendDependencyTable(final int dependencyId) throws IOException{
          final byte[] dependencyBytes = nextDependencyAsBytes(dependencyId);
          if (dependencyBytes == null) {
              m_connection.m_socket.getOutputStream().write(Connection.kErrorCode_DependencyNotFound);
              return;
          }
          // 1 for response code + 4 for dependency length prefix + dependencyBytes.length
          final ByteBuffer message = ByteBuffer.allocate(1 + 4 + dependencyBytes.length);
  
          // write the response code
          message.put((byte)Connection.kErrorCode_DependencyFound);
  
          // write the dependency's length prefix
          message.putInt(dependencyBytes.length);
  
          // finally, write dependency table itself
          message.put(dependencyBytes);
          message.rewind();
          if (m_connection.m_socketChannel.write(message) != message.capacity()) {
              throw new IOException("Unable to send dependency table to client. Attempted blocking write of " +
                      message.capacity() + " but not all of it was written");
          }
      }