Propagating exceptions in trace filter

without this change any exception occurring while creating a span will be swallowed.
with this change we're propagating the exception so that it gets handled properly.

fixes #426
This commit is contained in:
Marcin Grzejszczak
2016-10-18 16:21:04 +02:00
parent 17f68f80fd
commit 14236cfd97

View File

@@ -15,18 +15,18 @@
*/
package org.springframework.cloud.sleuth.instrument.web;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.invoke.MethodHandles;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.regex.Pattern;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -134,16 +134,9 @@ public class TraceFilter extends GenericFilterBean {
return;
}
String name = HTTP_COMPONENT + ":" + uri;
try {
spanFromRequest = createSpan(request, skip, spanFromRequest, name);
} catch (IllegalArgumentException e) {
filterChain.doFilter(request, response);
response.sendError(HttpStatus.BAD_REQUEST.value(),
"Exception tracing request [" + e.getMessage() + "]");
return;
}
Throwable exception = null;
try {
spanFromRequest = createSpan(request, skip, spanFromRequest, name);
filterChain.doFilter(request, response);
} catch (Throwable e) {
exception = e;