private void populateAndEndSubsegment()

in aws-xray-recorder-sdk-aws-sdk/src/main/java/com/amazonaws/xray/handlers/TracingHandler.java [481:502]


    private void populateAndEndSubsegment(
        Subsegment currentSubsegment, Request<?> request, Response<?> response, AmazonServiceException ase) {
        if (null != response) {
            populateAndEndSubsegment(currentSubsegment, request, response);
            return;
        } else if (null != ase) {
            if (null != ase.getRequestId()) {
                currentSubsegment.putAws(REQUEST_ID_SUBSEGMENT_KEY, ase.getRequestId());
            }
            if (null != ase.getHttpHeaders() &&
                null != ase.getHttpHeaders().get(EntityHeaderKeys.AWS.EXTENDED_REQUEST_ID_HEADER)) {
                currentSubsegment.putAws(EntityDataKeys.AWS.EXTENDED_REQUEST_ID_KEY,
                                         ase.getHttpHeaders().get(EntityHeaderKeys.AWS.EXTENDED_REQUEST_ID_HEADER));
            }
            if (null != ase.getErrorMessage()) {
                currentSubsegment.getCause().setMessage(ase.getErrorMessage());
            }
            currentSubsegment.putAllHttp(extractHttpResponseInformation(ase));
        }

        finalizeSubsegment(request);
    }