|
1 | 1 | /*
|
2 |
| - * Copyright 2002-2022 the original author or authors. |
| 2 | + * Copyright 2002-2023 the original author or authors. |
3 | 3 | *
|
4 | 4 | * Licensed under the Apache License, Version 2.0 (the "License");
|
5 | 5 | * you may not use this file except in compliance with the License.
|
@@ -566,7 +566,7 @@ private boolean processMessageForGroup(Message<?> message, Object correlationKey
|
566 | 566 | this.logger.trace(() -> "Adding message to group [ " + messageGroupToLog + "]");
|
567 | 567 | messageGroup = store(correlationKey, message);
|
568 | 568 |
|
569 |
| - setGroupConditionIfAny(message, messageGroup); |
| 569 | + messageGroup = setGroupConditionIfAny(message, messageGroup); |
570 | 570 |
|
571 | 571 | if (this.releaseStrategy.canRelease(messageGroup)) {
|
572 | 572 | Collection<Message<?>> completedMessages = null;
|
@@ -605,12 +605,19 @@ private void cancelScheduledFutureIfAny(Object correlationKey, UUID groupIdUuid,
|
605 | 605 | }
|
606 | 606 | }
|
607 | 607 |
|
608 |
| - private void setGroupConditionIfAny(Message<?> message, MessageGroup messageGroup) { |
| 608 | + private MessageGroup setGroupConditionIfAny(Message<?> message, MessageGroup messageGroup) { |
| 609 | + MessageGroup messageGroupToUse = messageGroup; |
| 610 | + |
609 | 611 | if (this.groupConditionSupplier != null) {
|
610 |
| - String condition = this.groupConditionSupplier.apply(message, messageGroup.getCondition()); |
611 |
| - this.messageStore.setGroupCondition(messageGroup.getGroupId(), condition); |
612 |
| - messageGroup.setCondition(condition); |
| 612 | + String condition = this.groupConditionSupplier.apply(message, messageGroupToUse.getCondition()); |
| 613 | + this.messageStore.setGroupCondition(messageGroupToUse.getGroupId(), condition); |
| 614 | + messageGroupToUse = this.messageStore.getMessageGroup(messageGroupToUse.getGroupId()); |
| 615 | + if (this.sequenceAware) { |
| 616 | + messageGroupToUse = new SequenceAwareMessageGroup(messageGroupToUse); |
| 617 | + } |
613 | 618 | }
|
| 619 | + |
| 620 | + return messageGroupToUse; |
614 | 621 | }
|
615 | 622 |
|
616 | 623 | protected boolean isExpireGroupsUponCompletion() {
|
|
0 commit comments