2020import java .util .List ;
2121import java .util .Map ;
2222import org .hypertrace .agent .filter .api .Filter ;
23+ import org .slf4j .Logger ;
24+ import org .slf4j .LoggerFactory ;
2325
2426class MultiFilter implements Filter {
2527
28+ private static final Logger logger = LoggerFactory .getLogger (MultiFilter .class );
29+
2630 private final List <Filter > filters ;
2731
2832 public MultiFilter (List <Filter > filters ) {
@@ -33,8 +37,15 @@ public MultiFilter(List<Filter> filters) {
3337 public boolean evaluateRequestHeaders (Span span , Map <String , String > headers ) {
3438 boolean shouldBlock = false ;
3539 for (Filter filter : filters ) {
36- if (filter .evaluateRequestHeaders (span , headers )) {
37- shouldBlock = true ;
40+ try {
41+ if (filter .evaluateRequestHeaders (span , headers )) {
42+ shouldBlock = true ;
43+ }
44+ } catch (Throwable t ) {
45+ logger .warn (
46+ "Throwable thrown while evaluating Request headers for filter {}" ,
47+ filter .getClass ().getName (),
48+ t );
3849 }
3950 }
4051 return shouldBlock ;
@@ -44,8 +55,15 @@ public boolean evaluateRequestHeaders(Span span, Map<String, String> headers) {
4455 public boolean evaluateRequestBody (Span span , String body ) {
4556 boolean shouldBlock = false ;
4657 for (Filter filter : filters ) {
47- if (filter .evaluateRequestBody (span , body )) {
48- shouldBlock = true ;
58+ try {
59+ if (filter .evaluateRequestBody (span , body )) {
60+ shouldBlock = true ;
61+ }
62+ } catch (Throwable t ) {
63+ logger .warn (
64+ "Throwable thrown while evaluating Request body for filter {}" ,
65+ filter .getClass ().getName (),
66+ t );
4967 }
5068 }
5169 return shouldBlock ;
0 commit comments