docs: @Override
      public boolean isCompleteRequest(ByteBuffer buffer) {
          DataInputStream inputStream = new DataInputStream(new ByteBufferBackedInputStream(buffer));
  
          try {
              int dataSize = inputStream.readInt();
  
              if(logger.isTraceEnabled())
                  logger.trace("In isCompleteRequest, dataSize: " + dataSize + ", buffer position: "
                               + buffer.position());
  
              if(dataSize == -1)
                  return true;
  
              // Here we skip over the data (without reading it in) and
              // move our position to just past it.
              buffer.position(buffer.position() + dataSize);
  
              return true;
          } catch(Exception e) {
              // This could also occur if the various methods we call into
              // re-throw a corrupted value error as some other type of exception.
              // For example, updating the position on a buffer past its limit
              // throws an InvalidArgumentException.
              if(logger.isTraceEnabled())
                  logger.trace("In isCompleteRequest, probable partial read occurred: " + e);
  
              return false;
          }
      }