From 584115580b0c31b8533b849a5af482ec483fc435 Mon Sep 17 00:00:00 2001 From: Soby Chacko Date: Wed, 11 Sep 2019 14:54:11 -0400 Subject: [PATCH] Adding isPresent around optionals --- .../streams/function/FunctionDetectorCondition.java | 12 +++++++----- .../KafkaStreamsFunctionBeanPostProcessor.java | 8 +++++--- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/spring-cloud-stream-binder-kafka-streams/src/main/java/org/springframework/cloud/stream/binder/kafka/streams/function/FunctionDetectorCondition.java b/spring-cloud-stream-binder-kafka-streams/src/main/java/org/springframework/cloud/stream/binder/kafka/streams/function/FunctionDetectorCondition.java index 6b8fefc20..8bad3517b 100644 --- a/spring-cloud-stream-binder-kafka-streams/src/main/java/org/springframework/cloud/stream/binder/kafka/streams/function/FunctionDetectorCondition.java +++ b/spring-cloud-stream-binder-kafka-streams/src/main/java/org/springframework/cloud/stream/binder/kafka/streams/function/FunctionDetectorCondition.java @@ -93,11 +93,13 @@ public class FunctionDetectorCondition extends SpringBootCondition { try { Method[] methods = classObj.getMethods(); Optional kafkaStreamMethod = Arrays.stream(methods).filter(m -> m.getName().equals(key)).findFirst(); - Method method = kafkaStreamMethod.get(); - ResolvableType resolvableType = ResolvableType.forMethodReturnType(method, classObj); - final Class rawClass = resolvableType.getGeneric(0).getRawClass(); - if (rawClass == KStream.class || rawClass == KTable.class || rawClass == GlobalKTable.class) { - prunedList.add(key); + if (kafkaStreamMethod.isPresent()) { + Method method = kafkaStreamMethod.get(); + ResolvableType resolvableType = ResolvableType.forMethodReturnType(method, classObj); + final Class rawClass = resolvableType.getGeneric(0).getRawClass(); + if (rawClass == KStream.class || rawClass == KTable.class || rawClass == GlobalKTable.class) { + prunedList.add(key); + } } } catch (Exception e) { diff --git a/spring-cloud-stream-binder-kafka-streams/src/main/java/org/springframework/cloud/stream/binder/kafka/streams/function/KafkaStreamsFunctionBeanPostProcessor.java b/spring-cloud-stream-binder-kafka-streams/src/main/java/org/springframework/cloud/stream/binder/kafka/streams/function/KafkaStreamsFunctionBeanPostProcessor.java index 4143eb79c..cdda49a46 100644 --- a/spring-cloud-stream-binder-kafka-streams/src/main/java/org/springframework/cloud/stream/binder/kafka/streams/function/KafkaStreamsFunctionBeanPostProcessor.java +++ b/spring-cloud-stream-binder-kafka-streams/src/main/java/org/springframework/cloud/stream/binder/kafka/streams/function/KafkaStreamsFunctionBeanPostProcessor.java @@ -77,9 +77,11 @@ public class KafkaStreamsFunctionBeanPostProcessor implements InitializingBean, try { Method[] methods = classObj.getMethods(); Optional kafkaStreamMethod = Arrays.stream(methods).filter(m -> m.getName().equals(key)).findFirst(); - Method method = kafkaStreamMethod.get(); - ResolvableType resolvableType = ResolvableType.forMethodReturnType(method, classObj); - resolvableTypeMap.put(key, resolvableType); + if (kafkaStreamMethod.isPresent()) { + Method method = kafkaStreamMethod.get(); + ResolvableType resolvableType = ResolvableType.forMethodReturnType(method, classObj); + resolvableTypeMap.put(key, resolvableType); + } } catch (Exception e) { LOG.error("Function not found: " + key, e);