From d38ab942bd6e5783d37609fa0be482a8da7e3f9e Mon Sep 17 00:00:00 2001 From: Soby Chacko Date: Tue, 9 Apr 2024 16:17:05 -0400 Subject: [PATCH] GH-1134: Fix NPE in SimpleFunctionRegistry#isExtractPayload() Resolves https://github.com/spring-cloud/spring-cloud-function/issues/1134 --- .../context/catalog/SimpleFunctionRegistry.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/SimpleFunctionRegistry.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/SimpleFunctionRegistry.java index 1a97bb64f..3c76d0bcf 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/SimpleFunctionRegistry.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/SimpleFunctionRegistry.java @@ -1,5 +1,5 @@ /* - * Copyright 2019-2023 the original author or authors. + * Copyright 2019-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -1175,14 +1175,13 @@ private boolean isExtractPayload(Message message, Type type) { if (ObjectUtils.isArray(payload)) { payload = CollectionUtils.arrayToList(payload); } - if (payload instanceof Collection && !CollectionUtils.isEmpty((Collection) payload) - && Message.class.isAssignableFrom(CollectionUtils.findCommonElementType((Collection) payload))) { - return true; - } - if (this.containsRetainMessageSignalInHeaders(message)) { - return false; + if (payload instanceof Collection && !CollectionUtils.isEmpty((Collection) payload)) { + Class commonElementType = CollectionUtils.findCommonElementType((Collection) payload); + if (commonElementType != null && Message.class.isAssignableFrom(commonElementType)) { + return true; + } } - return true; + return !this.containsRetainMessageSignalInHeaders(message); } /**