in aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/jakarta/servlet/AWSXRayServletFilter.java [180:212]
public void doFilter(
ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
if (logger.isDebugEnabled()) {
logger.debug("AWSXRayServletFilter is beginning to process request: " + request.toString());
}
Segment segment = preFilter(request, response);
try {
chain.doFilter(request, response);
} catch (Throwable e) {
segment.addException(e);
throw e;
} finally {
if (request.isAsyncStarted()) {
request.setAttribute(AWSXRayServletAsyncListener.ENTITY_ATTRIBUTE_KEY, segment);
try {
request.getAsyncContext().addListener(listener);
if (recorder != null) {
recorder.clearTraceEntity();
}
} catch (IllegalStateException ise) {
// race condition that occurs when async processing finishes before adding the listener
postFilter(request, response);
}
} else {
postFilter(request, response);
}
if (logger.isDebugEnabled()) {
logger.debug("AWSXRayServletFilter is finished processing request: " + request.toString());
}
}
}