Skip to content

Commit 691b9ab

Browse files
garyrussellartembilan
authored andcommitted
Fix Sonar issue
1 parent 1ae44da commit 691b9ab

File tree

1 file changed

+21
-10
lines changed

1 file changed

+21
-10
lines changed

spring-kafka/src/main/java/org/springframework/kafka/listener/adapter/MessagingMessageListenerAdapter.java

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -548,19 +548,12 @@ private Type extractGenericParameterTypFromMethodParameter(MethodParameter metho
548548
genericParameterType = ((ParameterizedType) genericParameterType).getActualTypeArguments()[0];
549549
}
550550
else if (parameterizedType.getRawType().equals(List.class)
551-
&& parameterizedType.getActualTypeArguments().length == 1) { // NOSONAR
551+
&& parameterizedType.getActualTypeArguments().length == 1) {
552552

553553
Type paramType = parameterizedType.getActualTypeArguments()[0];
554554
this.isConsumerRecordList = paramType.equals(ConsumerRecord.class)
555-
|| (paramType instanceof ParameterizedType
556-
&& ((ParameterizedType) paramType).getRawType().equals(ConsumerRecord.class)
557-
|| (paramType instanceof WildcardType
558-
&& ((WildcardType) paramType).getUpperBounds() != null
559-
&& ((WildcardType) paramType).getUpperBounds().length > 0
560-
&& ((WildcardType) paramType).getUpperBounds()[0] instanceof ParameterizedType
561-
&& ((ParameterizedType) ((WildcardType)
562-
paramType).getUpperBounds()[0]).getRawType().equals(ConsumerRecord.class))
563-
);
555+
|| (isSimpleListOfConsumerRecord(paramType)
556+
|| isListOfConsumerRecordUpperBounded(paramType));
564557
boolean messageHasGeneric = paramType instanceof ParameterizedType
565558
&& ((ParameterizedType) paramType).getRawType().equals(Message.class);
566559
this.isMessageList = paramType.equals(Message.class) || messageHasGeneric;
@@ -575,6 +568,24 @@ else if (parameterizedType.getRawType().equals(List.class)
575568
return genericParameterType;
576569
}
577570

571+
private boolean isSimpleListOfConsumerRecord(Type paramType) {
572+
return paramType instanceof ParameterizedType
573+
&& ((ParameterizedType) paramType).getRawType().equals(ConsumerRecord.class);
574+
}
575+
576+
private boolean isListOfConsumerRecordUpperBounded(Type paramType) {
577+
return isWildCardWithUpperBound(paramType)
578+
&& ((WildcardType) paramType).getUpperBounds()[0] instanceof ParameterizedType
579+
&& ((ParameterizedType) ((WildcardType) paramType).getUpperBounds()[0])
580+
.getRawType().equals(ConsumerRecord.class);
581+
}
582+
583+
private boolean isWildCardWithUpperBound(Type paramType) {
584+
return paramType instanceof WildcardType
585+
&& ((WildcardType) paramType).getUpperBounds() != null
586+
&& ((WildcardType) paramType).getUpperBounds().length > 0;
587+
}
588+
578589
/*
579590
* Don't consider parameter types that are available after conversion.
580591
* Acknowledgment, ConsumerRecord, Consumer, ConsumerRecord<...>, Consumer<...>, and Message<?>.

0 commit comments

Comments
 (0)