code: public static ByteBuffer getPayloadData(ReadableByteChannel channel)
  			throws IOException {
  		ByteBuffer buffer = ByteBuffer.allocate(BUFFER_SIZE);
  		try {
  			int amountRead = channel.read(buffer);
  			Assert.state(amountRead != -1, "Target server connection closed");
  			buffer.flip();
  			return buffer;
  		}
  		catch (InterruptedIOException ex) {
  			return null;
  		}
  	}
docs: Return the payload data for the given source {@link ReadableByteChannel} or null if
  the channel timed out whilst reading.
  @param channel the source channel
  @return payload data or {@code null}
  @throws IOException in case of I/O errors