/** * We've received all the error content so send it off to the error response handler to produce the service exception. */ private AmazonServiceException unmarshallError() throws Exception { errorResponse.setContent(new ByteArrayInputStream(BinaryUtils.copyBytesFrom(cumulation.nioBuffer()))); return errorResponseHandler.handle(errorResponse); }
@Override public boolean needsConnectionLeftOpen() { return delegate.needsConnectionLeftOpen(); }
.expect(handler.needsConnectionLeftOpen()) .andReturn(false) .anyTimes(); .expect(handler.handle(EasyMock.<HttpResponse> anyObject())) .andThrow(exception) .times(4);
SdkBaseException exception; try { exception = errorResponseHandler.handle(response); if (requestLog.isDebugEnabled()) { requestLog.debug("Received error response: " + exception);
@Override public boolean needsConnectionLeftOpen() { return delegate.needsConnectionLeftOpen(); } }
@Override public T handle(HttpResponse httpResponse) throws Exception { T result = delegate.handle(httpResponse).getResult(); result.sdkResponseMetadata(new SdkResponseMetadata(SdkHttpMetadata.from(httpResponse))); return result; }
@Override public boolean needsConnectionLeftOpen() { return delegate.needsConnectionLeftOpen(); }
@Override public T handle(HttpResponse response) throws Exception { final AmazonWebServiceResponse<T> awsResponse = delegate.handle(response); if (awsResponse == null) { throw new RuntimeException("Unable to unmarshall response metadata. Response Code: " + response.getStatusCode() + ", Response Text: " + response.getStatusText()); } AmazonWebServiceRequest userRequest = request.getOriginalRequest(); if (userRequest.getCloneRoot() != null) { userRequest = userRequest.getCloneRoot(); } responseMetadataCache.add(userRequest, awsResponse.getResponseMetadata()); final String awsRequestId = awsResponse.getRequestId(); if (requestLog.isDebugEnabled()) { requestLog .debug("Received successful response: " + response.getStatusCode() + ", AWS Request ID: " + awsRequestId); } if (!logHeaderRequestId(response)) { // Logs the AWS request ID extracted from the payload if // it is not available from the response header. logResponseRequestId(awsRequestId); } awsRequestMetrics.addProperty(AWSRequestMetrics.Field.AWSRequestID, awsRequestId); return fillInResponseMetadata(awsResponse, response); }
@Override public boolean needsConnectionLeftOpen() { return delegate.needsConnectionLeftOpen(); }
try { awsResponse = responseHandler .handle(beforeUnmarshalling(httpResponse)); } finally { awsRequestMetrics.endEvent(Field.ResponseProcessingTime);
@Override public boolean needsConnectionLeftOpen() { return delegate.needsConnectionLeftOpen(); }
private AmazonServiceException handleAse(HttpResponse response) throws Exception { final int statusCode = response.getStatusCode(); try { return delegate.handle(response); } catch(InterruptedException e) { throw e; } catch (Exception e) { // If the errorResponseHandler doesn't work, then check for error responses that don't have any content if (statusCode == 413) { AmazonServiceException exception = new AmazonServiceException("Request entity too large"); exception.setServiceName(response.getRequest().getServiceName()); exception.setStatusCode(statusCode); exception.setErrorType(AmazonServiceException.ErrorType.Client); exception.setErrorCode("Request entity too large"); return exception; } else if (statusCode >= 500 && statusCode < 600) { AmazonServiceException exception = new AmazonServiceException(response.getStatusText()); exception.setServiceName(response.getRequest().getServiceName()); exception.setStatusCode(statusCode); exception.setErrorType(AmazonServiceException.ErrorType.Service); exception.setErrorCode(response.getStatusText()); return exception; } else { throw e; } } }
if (shouldBufferHttpEntity(responseHandler.needsConnectionLeftOpen(), executionContext, execOneParams, execOneParams.leaveHttpConnectionOpen = responseHandler.needsConnectionLeftOpen(); HttpResponse httpResponse = ApacheUtils.createResponse(request, execOneParams.apacheRequest, execOneParams.apacheResponse, localRequestContext); Output response = handleResponse(httpResponse); return null; // => retry execOneParams.leaveHttpConnectionOpen = errorResponseHandler.needsConnectionLeftOpen(); final SdkBaseException exception = handleErrorResponse(execOneParams.apacheRequest, execOneParams.apacheResponse,
SdkBaseException exception; try { exception = errorResponseHandler.handle(response); if (requestLog.isDebugEnabled()) { requestLog.debug("Received error response: " + exception);
@Override public boolean needsConnectionLeftOpen() { return delegate.needsConnectionLeftOpen(); } }
@Override public T handle(HttpResponse response) throws Exception { final AmazonWebServiceResponse<T> awsResponse = delegate.handle(response); if (awsResponse == null) { throw new RuntimeException("Unable to unmarshall response metadata. Response Code: " + response.getStatusCode() + ", Response Text: " + response.getStatusText()); } AmazonWebServiceRequest userRequest = request.getOriginalRequest(); if (userRequest.getCloneRoot() != null) { userRequest = userRequest.getCloneRoot(); } responseMetadataCache.add(userRequest, awsResponse.getResponseMetadata()); final String awsRequestId = awsResponse.getRequestId(); if (requestLog.isDebugEnabled()) { requestLog .debug("Received successful response: " + response.getStatusCode() + ", AWS Request ID: " + awsRequestId); } if (!logHeaderRequestId(response)) { // Logs the AWS request ID extracted from the payload if // it is not available from the response header. logResponseRequestId(awsRequestId); } awsRequestMetrics.addProperty(AWSRequestMetrics.Field.AWSRequestID, awsRequestId); return fillInResponseMetadata(awsResponse, response); }
@Override public boolean needsConnectionLeftOpen() { return delegate.needsConnectionLeftOpen(); }
try { awsResponse = responseHandler .handle(beforeUnmarshalling(httpResponse)); } finally { awsRequestMetrics.endEvent(Field.ResponseProcessingTime);
leaveHttpConnectionOpen = responseHandler.needsConnectionLeftOpen(); final T response = handleResponse(request, responseHandler, httpResponse, awsRequestMetrics.addProperty(Field.AWSRequestID, null); } else { leaveHttpConnectionOpen = errorResponseHandler.needsConnectionLeftOpen(); final AmazonServiceException ase = handleErrorResponse(request, errorResponseHandler, httpResponse);
awsRequestMetrics.startEvent(Field.ResponseProcessingTime); try { awsResponse = responseHandler.handle(response); } finally { awsRequestMetrics.endEvent(Field.ResponseProcessingTime);