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 f0c710c544..15593bbc7a 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 @@ -1,5 +1,5 @@ /* - * Copyright 2009-2024 the original author or authors. + * Copyright 2009-2025 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. @@ -15,6 +15,7 @@ */ package org.springframework.batch.integration.partition; +import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -83,6 +84,7 @@ * @author Will Schipp * @author Michael Minella * @author Mahmoud Ben Hassine + * @author Yanming Zhou * */ @MessageEndpoint @@ -286,7 +288,7 @@ private Set pollReplies(final StepExecution managerStepExecution, @SuppressWarnings("unchecked") private Set receiveReplies(PollableChannel currentReplyChannel) { - Message> message = (Message>) messagingGateway + Message> message = (Message>) messagingGateway .receive(currentReplyChannel); if (message == null) { @@ -296,7 +298,8 @@ else if (logger.isDebugEnabled()) { logger.debug("Received replies: " + message); } - return new HashSet<>(message.getPayload()); + Collection payload = message.getPayload(); + return payload instanceof Set ? (Set) payload : new HashSet<>(message.getPayload()); } private Message createMessage(int sequenceNumber, int sequenceSize,