diff --git a/dd-java-agent/appsec/src/main/java/com/datadog/appsec/gateway/AppSecRequestContext.java b/dd-java-agent/appsec/src/main/java/com/datadog/appsec/gateway/AppSecRequestContext.java index 15df0fb35df..a5131bcb84c 100644 --- a/dd-java-agent/appsec/src/main/java/com/datadog/appsec/gateway/AppSecRequestContext.java +++ b/dd-java-agent/appsec/src/main/java/com/datadog/appsec/gateway/AppSecRequestContext.java @@ -438,15 +438,24 @@ public void reportStackTrace(StackTraceEvent stackTraceEvent) { } Collection transferCollectedEvents() { + if (this.appSecEvents == null) { + return Collections.emptyList(); + } + Collection events = new ArrayList<>(); AppSecEvent item; while ((item = this.appSecEvents.poll()) != null) { events.add(item); } + return events; } StackTraceCollection transferStackTracesCollection() { + if (this.stackTraceEvents == null) { + return null; + } + Collection stackTraces = new ArrayList<>(); StackTraceEvent item; while ((item = this.stackTraceEvents.poll()) != null) { diff --git a/dd-java-agent/appsec/src/test/groovy/com/datadog/appsec/gateway/AppSecRequestContextSpecification.groovy b/dd-java-agent/appsec/src/test/groovy/com/datadog/appsec/gateway/AppSecRequestContextSpecification.groovy index b7540ff74be..701db55097b 100644 --- a/dd-java-agent/appsec/src/test/groovy/com/datadog/appsec/gateway/AppSecRequestContextSpecification.groovy +++ b/dd-java-agent/appsec/src/test/groovy/com/datadog/appsec/gateway/AppSecRequestContextSpecification.groovy @@ -110,9 +110,11 @@ class AppSecRequestContextSpecification extends DDSpecification { when: ctx.reportEvents([new AppSecEvent()]) + events = ctx.transferCollectedEvents() then: - thrown IllegalStateException + events.size() == 1 + events[0] != null } void 'collect events when none reported'() { @@ -144,6 +146,11 @@ class AppSecRequestContextSpecification extends DDSpecification { collection.exploit[0].frames[0].function == 'method' } + void 'collect stack traces when none reported'() { + expect: + ctx.transferStackTracesCollection() == null + } + void 'headers allow list should contains only lowercase names'() { expect: headers.each {