From 4763480c5746bd6b18b075690ee82b334ec4b3ca Mon Sep 17 00:00:00 2001 From: Mahmoud Ben Hassine Date: Wed, 12 Jul 2023 20:55:18 +0200 Subject: [PATCH] Fix compiler warnings - Add `@Nullable` where needed - Suppress warnings where appropriate - Add generic type definitions --- .../batch/core/converter/DefaultJobParametersConverter.java | 1 + .../batch/core/converter/JsonJobParametersConverter.java | 1 + .../dao/Jackson2ExecutionContextStringSerializer.java | 1 + .../batch/core/repository/dao/JdbcJobExecutionDao.java | 2 ++ .../batch/core/step/builder/FaultTolerantStepBuilder.java | 3 ++- .../springframework/batch/item/data/MongoItemWriter.java | 6 +++++- .../item/data/builder/RepositoryItemWriterBuilder.java | 1 + .../batch/item/file/builder/FlatFileItemReaderBuilder.java | 6 +++--- .../springframework/batch/item/kafka/KafkaItemReader.java | 1 + .../batch/integration/chunk/ChunkProcessorChunkHandler.java | 1 + .../config/annotation/BatchIntegrationConfiguration.java | 6 +++--- .../partition/MessageChannelPartitionHandler.java | 1 + 12 files changed, 22 insertions(+), 8 deletions(-) diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/converter/DefaultJobParametersConverter.java b/spring-batch-core/src/main/java/org/springframework/batch/core/converter/DefaultJobParametersConverter.java index ab0cfdb6b..522175f62 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/converter/DefaultJobParametersConverter.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/converter/DefaultJobParametersConverter.java @@ -153,6 +153,7 @@ public class DefaultJobParametersConverter implements JobParametersConverter { * @param encodedJobParameter the encoded job parameter * @return the decoded job parameter */ + @SuppressWarnings(value = { "unchecked", "rawtypes" }) protected JobParameter decode(String encodedJobParameter) { String parameterStringValue = parseValue(encodedJobParameter); Class parameterType = parseType(encodedJobParameter); diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/converter/JsonJobParametersConverter.java b/spring-batch-core/src/main/java/org/springframework/batch/core/converter/JsonJobParametersConverter.java index bc1834738..c7a0c784f 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/converter/JsonJobParametersConverter.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/converter/JsonJobParametersConverter.java @@ -100,6 +100,7 @@ public class JsonJobParametersConverter extends DefaultJobParametersConverter { } } + @SuppressWarnings(value = { "unchecked", "rawtypes" }) @Override protected JobParameter decode(String encodedJobParameter) { try { diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/Jackson2ExecutionContextStringSerializer.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/Jackson2ExecutionContextStringSerializer.java index 9748d469a..3dbab3914 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/Jackson2ExecutionContextStringSerializer.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/Jackson2ExecutionContextStringSerializer.java @@ -212,6 +212,7 @@ public class Jackson2ExecutionContextStringSerializer implements ExecutionContex super(JobParameter.class); } + @SuppressWarnings(value = { "unchecked", "rawtypes" }) @Override public JobParameter deserialize(JsonParser parser, DeserializationContext context) throws IOException { JsonNode node = parser.readValueAsTree(); diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDao.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDao.java index a772373db..4ba34678c 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDao.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDao.java @@ -414,6 +414,7 @@ public class JdbcJobExecutionDao extends AbstractJdbcBatchMetadataDao implements * Convenience method that inserts all parameters from the provided JobParameters. * */ + @SuppressWarnings(value = { "unchecked", "rawtypes" }) private void insertJobParameters(Long executionId, JobParameters jobParameters) { if (jobParameters.isEmpty()) { @@ -450,6 +451,7 @@ public class JdbcJobExecutionDao extends AbstractJdbcBatchMetadataDao implements * @param executionId {@link Long} containing the id for the execution. * @return job parameters for the requested execution id */ + @SuppressWarnings(value = { "unchecked", "rawtypes" }) protected JobParameters getJobParameters(Long executionId) { final Map> map = new HashMap<>(); RowCallbackHandler handler = rs -> { diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/step/builder/FaultTolerantStepBuilder.java b/spring-batch-core/src/main/java/org/springframework/batch/core/step/builder/FaultTolerantStepBuilder.java index ba0c63d7f..5a81d181a 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/step/builder/FaultTolerantStepBuilder.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/step/builder/FaultTolerantStepBuilder.java @@ -189,6 +189,7 @@ public class FaultTolerantStepBuilder extends SimpleStepBuilder { * @param listener the object that has a method configured with listener annotation * @return this for fluent chaining */ + @SuppressWarnings("unchecked") @Override public FaultTolerantStepBuilder listener(Object listener) { super.listener(listener); @@ -201,7 +202,7 @@ public class FaultTolerantStepBuilder extends SimpleStepBuilder { if (skipListenerMethods.size() > 0) { StepListenerFactoryBean factory = new StepListenerFactoryBean(); factory.setDelegate(listener); - skipListeners.add((SkipListener) factory.getObject()); + skipListeners.add((SkipListener) factory.getObject()); } return this; diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/data/MongoItemWriter.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/data/MongoItemWriter.java index 27aefd8a0..dbfc95763 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/data/MongoItemWriter.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/data/MongoItemWriter.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2022 the original author or authors. + * Copyright 2012-2023 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. @@ -29,6 +29,7 @@ import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.convert.MongoConverter; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; +import org.springframework.lang.Nullable; import org.springframework.transaction.support.TransactionSynchronization; import org.springframework.transaction.support.TransactionSynchronizationManager; import org.springframework.util.Assert; @@ -113,6 +114,7 @@ public class MongoItemWriter implements ItemWriter, InitializingBean { * * @see org.springframework.batch.item.ItemWriter#write(Chunk) */ + @SuppressWarnings(value = { "unchecked", "rawtypes" }) @Override public void write(Chunk chunk) throws Exception { if (!transactionActive()) { @@ -184,6 +186,8 @@ public class MongoItemWriter implements ItemWriter, InitializingBean { return TransactionSynchronizationManager.isActualTransactionActive(); } + @SuppressWarnings("unchecked") + @Nullable private Chunk getCurrentBuffer() { if (!TransactionSynchronizationManager.hasResource(bufferKey)) { TransactionSynchronizationManager.bindResource(bufferKey, new Chunk()); diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/data/builder/RepositoryItemWriterBuilder.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/data/builder/RepositoryItemWriterBuilder.java index 03ad06a88..ed7fbe229 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/data/builder/RepositoryItemWriterBuilder.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/data/builder/RepositoryItemWriterBuilder.java @@ -99,6 +99,7 @@ public class RepositoryItemWriterBuilder { * Builds the {@link RepositoryItemWriter}. * @return a {@link RepositoryItemWriter} */ + @SuppressWarnings("unchecked") public RepositoryItemWriter build() { if (this.repositoryMethodReference != null) { this.methodName = this.repositoryMethodReference.getMethodName(); diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/builder/FlatFileItemReaderBuilder.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/builder/FlatFileItemReaderBuilder.java index 0a88a178c..13179a3a0 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/builder/FlatFileItemReaderBuilder.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/builder/FlatFileItemReaderBuilder.java @@ -91,7 +91,7 @@ public class FlatFileItemReaderBuilder { private FixedLengthBuilder fixedLengthBuilder; - private Class targetType; + private Class targetType; private String prototypeBeanName; @@ -339,7 +339,7 @@ public class FlatFileItemReaderBuilder { * @return The current instance of the builder. * @see BeanWrapperFieldSetMapper#setTargetType(Class) */ - public FlatFileItemReaderBuilder targetType(Class targetType) { + public FlatFileItemReaderBuilder targetType(Class targetType) { this.targetType = targetType; return this; } @@ -461,7 +461,7 @@ public class FlatFileItemReaderBuilder { if (this.targetType != null || StringUtils.hasText(this.prototypeBeanName)) { if (this.targetType != null && this.targetType.isRecord()) { - RecordFieldSetMapper mapper = new RecordFieldSetMapper(this.targetType); + RecordFieldSetMapper mapper = new RecordFieldSetMapper<>(this.targetType); lineMapper.setFieldSetMapper(mapper); } else { diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/kafka/KafkaItemReader.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/kafka/KafkaItemReader.java index 22f4b014e..bde6dc451 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/kafka/KafkaItemReader.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/kafka/KafkaItemReader.java @@ -163,6 +163,7 @@ public class KafkaItemReader extends AbstractItemStreamItemReader { this.partitionOffsets = partitionOffsets; } + @SuppressWarnings("unchecked") @Override public void open(ExecutionContext executionContext) { this.kafkaConsumer = new KafkaConsumer<>(this.consumerProperties); diff --git a/spring-batch-integration/src/main/java/org/springframework/batch/integration/chunk/ChunkProcessorChunkHandler.java b/spring-batch-integration/src/main/java/org/springframework/batch/integration/chunk/ChunkProcessorChunkHandler.java index 9ef65a46a..be7bcc09f 100644 --- a/spring-batch-integration/src/main/java/org/springframework/batch/integration/chunk/ChunkProcessorChunkHandler.java +++ b/spring-batch-integration/src/main/java/org/springframework/batch/integration/chunk/ChunkProcessorChunkHandler.java @@ -99,6 +99,7 @@ public class ChunkProcessorChunkHandler implements ChunkHandler, Initializ * @param stepContribution the step contribution to update * @throws Exception if there is a fatal exception */ + @SuppressWarnings(value = { "unchecked", "rawtypes" }) private Throwable process(ChunkRequest chunkRequest, StepContribution stepContribution) throws Exception { Chunk chunk = chunkRequest.getItems(); diff --git a/spring-batch-integration/src/main/java/org/springframework/batch/integration/config/annotation/BatchIntegrationConfiguration.java b/spring-batch-integration/src/main/java/org/springframework/batch/integration/config/annotation/BatchIntegrationConfiguration.java index fb04dd735..eba18d0ed 100644 --- a/spring-batch-integration/src/main/java/org/springframework/batch/integration/config/annotation/BatchIntegrationConfiguration.java +++ b/spring-batch-integration/src/main/java/org/springframework/batch/integration/config/annotation/BatchIntegrationConfiguration.java @@ -34,7 +34,7 @@ import org.springframework.transaction.PlatformTransactionManager; * @author Mahmoud Ben Hassine */ @Configuration(proxyBeanMethods = false) -public class BatchIntegrationConfiguration implements InitializingBean { +public class BatchIntegrationConfiguration implements InitializingBean { private final JobExplorer jobExplorer; @@ -44,7 +44,7 @@ public class BatchIntegrationConfiguration implements InitializingBean { private RemoteChunkingManagerStepBuilderFactory remoteChunkingManagerStepBuilderFactory; - private RemoteChunkingWorkerBuilder remoteChunkingWorkerBuilder; + private RemoteChunkingWorkerBuilder remoteChunkingWorkerBuilder; private RemotePartitioningManagerStepBuilderFactory remotePartitioningManagerStepBuilderFactory; @@ -65,7 +65,7 @@ public class BatchIntegrationConfiguration implements InitializingBean { } @Bean - public RemoteChunkingWorkerBuilder remoteChunkingWorkerBuilder() { + public RemoteChunkingWorkerBuilder remoteChunkingWorkerBuilder() { return remoteChunkingWorkerBuilder; } diff --git a/spring-batch-integration/src/main/java/org/springframework/batch/integration/partition/MessageChannelPartitionHandler.java b/spring-batch-integration/src/main/java/org/springframework/batch/integration/partition/MessageChannelPartitionHandler.java index 9b1696410..a5cc62419 100644 --- a/spring-batch-integration/src/main/java/org/springframework/batch/integration/partition/MessageChannelPartitionHandler.java +++ b/spring-batch-integration/src/main/java/org/springframework/batch/integration/partition/MessageChannelPartitionHandler.java @@ -286,6 +286,7 @@ public class MessageChannelPartitionHandler extends AbstractPartitionHandler imp } } + @SuppressWarnings("unchecked") private Set receiveReplies(PollableChannel currentReplyChannel) { Message> message = (Message>) messagingGateway .receive(currentReplyChannel);