@Override protected final Void receiveResponse(final InputStream input) throws IOException { final Unmarshaller unmarshaller = getUnmarshaller(); unmarshaller.start(createByteInput(input)); expectHeader(unmarshaller, DomainClientProtocol.RETURN_APPLY_SERVER_MODEL_UPDATE); @SuppressWarnings("unchecked") final UpdateResultHandlerResponse<R> result = unmarshal(unmarshaller, UpdateResultHandlerResponse.class); unmarshaller.finish(); if (resultHandler != null) { if (result.isCancelled()) { resultHandler.handleCancellation(param); } else if (result.isRolledBack()) { resultHandler.handleRollbackSuccess(param); } else if (result.isTimedOut()) { resultHandler.handleTimeout(param); } else if (result.getFailureResult() != null) { resultHandler.handleFailure(result.getFailureResult(), param); } else { resultHandler.handleSuccess(result.getSuccessResult(), param); } } unmarshaller.finish(); return null; } }