From 67de4c3cfadac04a4d113034f56f2f144e773e60 Mon Sep 17 00:00:00 2001 From: Ryan Baxter Date: Sat, 28 Jul 2018 10:58:04 -0400 Subject: [PATCH] Add logging statement for ClassCastException --- .../handler/predicate/ReadBodyPredicateFactory.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/handler/predicate/ReadBodyPredicateFactory.java b/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/handler/predicate/ReadBodyPredicateFactory.java index 621d2f24..6e2a4b24 100644 --- a/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/handler/predicate/ReadBodyPredicateFactory.java +++ b/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/handler/predicate/ReadBodyPredicateFactory.java @@ -20,6 +20,8 @@ package org.springframework.cloud.gateway.handler.predicate; import java.util.Map; import java.util.function.Predicate; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.springframework.cloud.gateway.support.BodyInserterContext; import reactor.core.publisher.Mono; @@ -41,6 +43,7 @@ import static org.springframework.cloud.gateway.filter.AdaptCachedBodyGlobalFilt */ public class ReadBodyPredicateFactory extends AbstractRoutePredicateFactory { + protected static final Log LOGGER = LogFactory.getLog(ReadBodyPredicateFactory.class); private static final String TEST_ATTRIBUTE = "read_body_predicate_test_attribute"; private static final String CACHE_REQUEST_BODY_OBJECT_KEY = "cachedRequestBodyObject"; @@ -64,7 +67,10 @@ public class ReadBodyPredicateFactory boolean test = config.predicate.test(cachedBody); exchange.getAttributes().put(TEST_ATTRIBUTE, test); } catch(ClassCastException e) { - //predicate test failed because class in predicate does not match the cached body object + if(LOGGER.isDebugEnabled()) { + LOGGER.debug("Predicate test failed because class in predicate does not match the cached body object", + e); + } } modifiedBody = Mono.just(cachedBody); } else {