From c88206b33eebf2e090babec8a8c27ca6717ea798 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Tue, 25 Oct 2011 13:18:10 -0400 Subject: [PATCH] INT-2152 polishing JdbcMessageStore --- .../integration/jdbc/JdbcMessageStore.java | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/JdbcMessageStore.java b/spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/JdbcMessageStore.java index a34214e3d6..cd6afe18e0 100644 --- a/spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/JdbcMessageStore.java +++ b/spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/JdbcMessageStore.java @@ -485,29 +485,28 @@ public class JdbcMessageStore extends AbstractMessageGroupStore implements Messa }); } - public Message pollMessageFromGroup(Object groupId) { + public Message pollMessageFromGroup(final Object groupId) { String key = getKey(groupId); - UUID messageId = jdbcTemplate.query(getQuery(LIST_MESSAGEIDS_BY_GROUP_KEY), new Object[] { key, region }, - new ResultSetExtractor() { - public UUID extractData(ResultSet rs) + return jdbcTemplate.query(getQuery(LIST_MESSAGEIDS_BY_GROUP_KEY), new Object[] { key, region }, + new ResultSetExtractor>() { + public Message extractData(ResultSet rs) throws SQLException, DataAccessException { - if (rs.next()) { + while (rs.next()) { UUID uuid = UUID.fromString(rs.getString(1)); - return uuid; + if (uuid != null){ + Message message = getMessage(uuid); + if (message != null){ + removeMessageFromGroup(groupId, message); + return message; + } + } } return null; } }); - - if (messageId != null){ - Message message = this.getMessage(messageId); - this.removeMessageFromGroup(groupId, message); - return message; - } - return null; } - + private List getMessageIdsForGroup(Object groupId){ String key = getKey(groupId);