[ https://issues.apache.org/jira/browse/ARTEMIS-4768?focusedWorklogId=918469&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-918469 ]
ASF GitHub Bot logged work on ARTEMIS-4768: ------------------------------------------- Author: ASF GitHub Bot Created on: 09/May/24 03:22 Start Date: 09/May/24 03:22 Worklog Time Spent: 10m Work Description: jbertram commented on code in PR #4929: URL: https://github.com/apache/activemq-artemis/pull/4929#discussion_r1594918161 ########## artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/PostOfficeJournalLoader.java: ########## @@ -243,10 +243,6 @@ public void handleAddMessage(Map<Long, Map<Long, AddMessageRecord>> queueMap) th MessageReference ref = postOffice.reload(record.getMessage(), queue, null); ref.setDeliveryCount(record.getDeliveryCount()); - - if (scheduledDeliveryTime != 0) { - record.getMessage().setScheduledDeliveryTime(0L); Review Comment: If you look a few lines up from the code I removed you'll see this: ```java if (scheduledDeliveryTime != 0) { record.getMessage().setScheduledDeliveryTime(scheduledDeliveryTime); } ``` So first we set it to `scheduledDeliveryTime` and then we set it to `0`. One of these must be wrong. I believe the one I removed in the wrong one. There is another block still further up that does this: ```java if (scheduledDeliveryTime != 0 && scheduledDeliveryTime <= currentTime) { scheduledDeliveryTime = 0; record.getMessage().setScheduledDeliveryTime(0L); } ``` Reloading a message _whose scheduled delivery time is already passed_ should not be scheduled. Is this what you were referring to? Issue Time Tracking ------------------- Worklog Id: (was: 918469) Time Spent: 0.5h (was: 20m) > Property _AMQ_SCHED_DELIVERY lost from Scheduled Persistent Message after > broker restart > ---------------------------------------------------------------------------------------- > > Key: ARTEMIS-4768 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4768 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: Broker > Affects Versions: 2.19.1, 2.33.0 > Reporter: Ajay P > Assignee: Justin Bertram > Priority: Major > Time Spent: 0.5h > Remaining Estimate: 0h > > Im seeing something peculiar related to messages with Scheduled Delivery on > artemis 2.33.0 and a few prev versions too. > We transmit persistent messages for scheduled delivery with the property > _AMQ_SCHED_DELIVERY set to the time. There is a use case for being able to > browse these queues for scheduled messages and remove them if they need to be > canceled before delivery. This works fine and when browsing the queue using > listScheduledMessages, all properties on said message are visible. We use > this to show a list of scheduled messages that will be transmitted in the > future. > However, if the broker is restarted, then the message does not have that > _AMQ_SCHED_DELIVERY property set anymore. The broker still delivers the > message on the scheduled time but while browsing through the queue messages > that specific property is not on the message. > > Here is a link to a fork with a test case checked in. > [https://github.com/aahrimaan/activemq-scheduled-messages-issue] > -- This message was sent by Atlassian Jira (v8.20.10#820010)