docs: private Object readResponse(Type returnType, InputStream input, String id) throws Throwable {
  		
  		ReadContext context = ReadContext.getReadContext(input, mapper);
  		ObjectNode jsonObject = getValidResponse(id, context);
  		notifyAnswerListener(jsonObject);
  		handleErrorResponse(jsonObject);
  		
  		if (hasResult(jsonObject)) {
  			if (isReturnTypeInvalid(returnType)) {
  				return null;
  			}
  			return constructResponseObject(returnType, jsonObject);
  		}
  		
  		// no return type
  		return null;
  	}