20
20
import java .util .List ;
21
21
import java .util .Map ;
22
22
import org .hypertrace .agent .filter .api .Filter ;
23
+ import org .slf4j .Logger ;
24
+ import org .slf4j .LoggerFactory ;
23
25
24
26
class MultiFilter implements Filter {
25
27
28
+ private static final Logger logger = LoggerFactory .getLogger (MultiFilter .class );
29
+
26
30
private final List <Filter > filters ;
27
31
28
32
public MultiFilter (List <Filter > filters ) {
@@ -33,8 +37,15 @@ public MultiFilter(List<Filter> filters) {
33
37
public boolean evaluateRequestHeaders (Span span , Map <String , String > headers ) {
34
38
boolean shouldBlock = false ;
35
39
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 );
38
49
}
39
50
}
40
51
return shouldBlock ;
@@ -44,8 +55,15 @@ public boolean evaluateRequestHeaders(Span span, Map<String, String> headers) {
44
55
public boolean evaluateRequestBody (Span span , String body ) {
45
56
boolean shouldBlock = false ;
46
57
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 );
49
67
}
50
68
}
51
69
return shouldBlock ;
0 commit comments