diff --git a/openapi-validation-core/src/main/java/com/getyourguide/openapi/validation/core/exclusions/InternalViolationExclusions.java b/openapi-validation-core/src/main/java/com/getyourguide/openapi/validation/core/exclusions/InternalViolationExclusions.java index bae8474d..b8c96754 100644 --- a/openapi-validation-core/src/main/java/com/getyourguide/openapi/validation/core/exclusions/InternalViolationExclusions.java +++ b/openapi-validation-core/src/main/java/com/getyourguide/openapi/validation/core/exclusions/InternalViolationExclusions.java @@ -17,7 +17,8 @@ public boolean isExcluded(OpenApiViolation violation) { || falsePositive406(violation) || falsePositiveRequestWith4xxResponse(violation) || customViolationExclusions.isExcluded(violation) - || oneOfMatchesMoreThanOneSchema(violation); + || oneOfMatchesMoreThanOneSchema(violation) + || isConcurrentModificationExceptionInLibrary(violation); } private static boolean oneOfMatchesMoreThanOneSchema(OpenApiViolation violation) { @@ -55,4 +56,9 @@ private boolean falsePositive406(OpenApiViolation violation) { return violation.getResponseStatus().orElse(0) == 406 && Rules.Response.STATUS_UNKNOWN.equals(violation.getRule()); } + + private boolean isConcurrentModificationExceptionInLibrary(OpenApiViolation violation) { + return "validation.response.body.schema.unknownError".equals(violation.getRule()) + && violation.getMessage().contains("java.util.ConcurrentModificationException"); + } }