Skip to content

Commit 5d2be7b

Browse files
authored
Merge pull request #677 from softwaremill/queue-ordering-fix
Queue ordering fix
2 parents af8c1a0 + f29268b commit 5d2be7b

File tree

3 files changed

+11
-4
lines changed

3 files changed

+11
-4
lines changed

persistence/persistence-file/src/main/scala/org/elasticmq/persistence/file/QueueConfigUtil.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package org.elasticmq.persistence.file
22

33
import com.typesafe.config.{Config, ConfigFactory, ConfigObject, ConfigValue}
4-
import org.elasticmq.persistence.{CreateQueueMetadata, DeadLettersQueue}
4+
import org.elasticmq.persistence.{CreateQueueMetadata, DeadLettersQueue, QueueSorter}
55
import org.joda.time.DateTime
66

77
import java.io.File
@@ -43,7 +43,7 @@ object QueueConfigUtil {
4343

4444
val now = new DateTime().toInstant.getMillis
4545

46-
queuesConfig.map { case (n, v) =>
46+
val unsortedQueues = queuesConfig.map { case (n, v) =>
4747
val c = v.asInstanceOf[ConfigObject].toConfig
4848
val isFifo = getOptionalBoolean(c, "fifo").getOrElse(false)
4949
CreateQueueMetadata(
@@ -68,6 +68,7 @@ object QueueConfigUtil {
6868
tags = getOptionalTags(c, "tags")
6969
)
7070
}.toList
71+
QueueSorter.sortCreateQueues(unsortedQueues)
7172
}
7273

7374
private def addSuffixWhenFifoQueue(queueName: String, isFifo: Boolean): String = {

persistence/persistence-file/src/test/resources/expected-single-queue-config.conf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,8 @@ queues {
1717
tag1Key = tag1Value
1818
}
1919
}
20+
dead {
21+
created = 0,
22+
lastModified = 0,
23+
}
2024
}

persistence/persistence-file/src/test/scala/org/elasticmq/persistence/file/QueueConfigUtilTest.scala

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,10 @@ class QueueConfigUtilTest extends AnyFunSuite with Matchers with OptionValues {
6060
Some("messageTo"),
6161
Map("tag1Key" -> "tag1Value")
6262
)
63-
persistedQueues.length shouldBe 1
64-
persistedQueues.head shouldBe expectedQueue
63+
val expectedDeadLetters = CreateQueueMetadata("dead")
64+
persistedQueues.length shouldBe 2
65+
persistedQueues.head shouldBe expectedDeadLetters
66+
persistedQueues.last shouldBe expectedQueue
6567
}
6668

6769
test("Persisted queues should take precedence over startup queues with same names") {

0 commit comments

Comments
 (0)