32
32
import java .util .List ;
33
33
import java .util .Locale ;
34
34
import java .util .Map ;
35
+ import java .util .Objects ;
35
36
import java .util .Properties ;
36
37
import java .util .Set ;
37
38
import java .util .concurrent .ConcurrentHashMap ;
@@ -190,8 +191,7 @@ public class KafkaListenerAnnotationBeanPostProcessor<K, V>
190
191
191
192
private final AtomicBoolean enhancerIsBuilt = new AtomicBoolean ();
192
193
193
- @ SuppressWarnings ("NullAway.Init" )
194
- private KafkaListenerEndpointRegistry endpointRegistry ;
194
+ private @ Nullable KafkaListenerEndpointRegistry endpointRegistry ;
195
195
196
196
private String defaultContainerFactoryBeanName = DEFAULT_KAFKA_LISTENER_CONTAINER_FACTORY_BEAN_NAME ;
197
197
@@ -207,8 +207,7 @@ public class KafkaListenerAnnotationBeanPostProcessor<K, V>
207
207
208
208
private Charset charset = StandardCharsets .UTF_8 ;
209
209
210
- @ SuppressWarnings ("NullAway.Init" )
211
- private AnnotationEnhancer enhancer ;
210
+ private @ Nullable AnnotationEnhancer enhancer ;
212
211
213
212
private @ Nullable RetryTopicConfigurer retryTopicConfigurer ;
214
213
@@ -327,18 +326,14 @@ public void afterSingletonsInstantiated() {
327
326
328
327
if (this .registrar .getEndpointRegistry () == null ) {
329
328
if (this .endpointRegistry == null ) {
330
- Assert .state (this .beanFactory != null ,
331
- "BeanFactory must be set to find endpoint registry by bean name" );
332
329
this .endpointRegistry = this .beanFactory .getBean (
333
330
KafkaListenerConfigUtils .KAFKA_LISTENER_ENDPOINT_REGISTRY_BEAN_NAME ,
334
331
KafkaListenerEndpointRegistry .class );
335
332
}
336
333
this .registrar .setEndpointRegistry (this .endpointRegistry );
337
334
}
338
335
339
- if (this .defaultContainerFactoryBeanName != null ) {
340
- this .registrar .setContainerFactoryBeanName (this .defaultContainerFactoryBeanName );
341
- }
336
+ this .registrar .setContainerFactoryBeanName (this .defaultContainerFactoryBeanName );
342
337
343
338
// Set the custom handler method factory once resolved by the configurer
344
339
MessageHandlerMethodFactory handlerMethodFactory = this .registrar .getMessageHandlerMethodFactory ();
@@ -864,11 +859,9 @@ private TopicPartitionOffset[] resolveTopicPartitions(KafkaListener kafkaListene
864
859
private String [] resolveTopics (KafkaListener kafkaListener ) {
865
860
String [] topics = kafkaListener .topics ();
866
861
List <String > result = new ArrayList <>();
867
- if (topics .length > 0 ) {
868
- for (String topic1 : topics ) {
869
- Object topic = resolveExpression (topic1 );
870
- resolveAsString (topic , result );
871
- }
862
+ for (String topic1 : topics ) {
863
+ Object topic = resolveExpression (topic1 );
864
+ resolveAsString (topic , result );
872
865
}
873
866
return result .toArray (new String [0 ]);
874
867
}
@@ -954,9 +947,9 @@ else if (initialOffsetValue instanceof Long lng) {
954
947
955
948
private boolean isRelative (Object topic , PartitionOffset partitionOffset ) {
956
949
Object relativeToCurrentValue = resolveExpression (partitionOffset .relativeToCurrent ());
957
- Boolean relativeToCurrent ;
950
+ boolean relativeToCurrent ;
958
951
if (relativeToCurrentValue instanceof String str ) {
959
- relativeToCurrent = Boolean .valueOf (str );
952
+ relativeToCurrent = Boolean .parseBoolean (str );
960
953
}
961
954
else if (relativeToCurrentValue instanceof Boolean bool ) {
962
955
relativeToCurrent = bool ;
@@ -1046,8 +1039,7 @@ else if (resolvedValue instanceof Integer intgr) {
1046
1039
}
1047
1040
}
1048
1041
1049
- @ SuppressWarnings ("NullAway" ) // Overridden method does not define nullness
1050
- private TopicPartitionOffset .SeekPosition resloveTopicPartitionOffsetSeekPosition (@ Nullable Object seekPosition ) {
1042
+ private TopicPartitionOffset .@ Nullable SeekPosition resloveTopicPartitionOffsetSeekPosition (@ Nullable Object seekPosition ) {
1051
1043
TopicPartitionOffset .SeekPosition resloveTpoSp = null ;
1052
1044
if (seekPosition instanceof String seekPositionName ) {
1053
1045
String capitalLetterSeekPositionName = seekPositionName .trim ().toUpperCase (Locale .ROOT );
@@ -1087,8 +1079,7 @@ else if (resolved != null) {
1087
1079
return null ;
1088
1080
}
1089
1081
1090
- @ SuppressWarnings ("NullAway" ) // Dataflow analysis limitation
1091
- private byte [] resolveExpressionAsBytes (String value , String attribute ) {
1082
+ private byte @ Nullable [] resolveExpressionAsBytes (String value , String attribute ) {
1092
1083
Object resolved = resolveExpression (value );
1093
1084
if (resolved instanceof String str ) {
1094
1085
if (StringUtils .hasText (str )) {
@@ -1277,7 +1268,7 @@ public String convert(byte[] source) {
1277
1268
1278
1269
static class ListenerScope implements Scope {
1279
1270
1280
- private final Map <String , @ Nullable Object > listeners = new HashMap <>();
1271
+ private final Map <String , Object > listeners = new HashMap <>();
1281
1272
1282
1273
ListenerScope () {
1283
1274
}
@@ -1290,16 +1281,15 @@ public void removeListener(String key) {
1290
1281
this .listeners .remove (key );
1291
1282
}
1292
1283
1293
- @ SuppressWarnings ("NullAway" ) // Overridden method does not define nullness
1294
1284
@ Override
1295
- public @ Nullable Object get (String name , ObjectFactory <?> objectFactory ) {
1285
+ public Object get (String name , ObjectFactory <?> objectFactory ) {
1286
+ Objects .requireNonNull (this .listeners .get (name ), "No listeners registered for " + name );
1296
1287
return this .listeners .get (name );
1297
1288
}
1298
1289
1299
- @ SuppressWarnings ("NullAway" ) // Overridden method does not define nullness
1300
1290
@ Override
1301
- public Object remove (String name ) {
1302
- return null ;
1291
+ public @ Nullable Object remove (String name ) {
1292
+ return this . listeners . remove ( name ) ;
1303
1293
}
1304
1294
1305
1295
@ Override
@@ -1324,7 +1314,7 @@ public void registerDestructionCallback(String name, Runnable callback) {
1324
1314
* @since 2.7.2
1325
1315
*
1326
1316
*/
1327
- public interface AnnotationEnhancer extends BiFunction <Map <String , Object >, AnnotatedElement , Map <String , Object >> {
1317
+ public interface AnnotationEnhancer extends BiFunction <Map <String , @ Nullable Object >, AnnotatedElement , Map <String , Object >> {
1328
1318
1329
1319
}
1330
1320
0 commit comments