Skip to content

Commit f8308f2

Browse files
committed
GH-2667: Use any Number for inbound x-delay property
Fixes: #2667 The `x-delay` header may arrive as a `Short` from RabbitMQ broker. * Fix `DefaultMessagePropertiesConverter.toMessageProperties()` to deal with a `Number` to extract `long` value from the `x-delay` header # Conflicts: # spring-rabbit/src/main/java/org/springframework/amqp/rabbit/support/DefaultMessagePropertiesConverter.java
1 parent 3941c12 commit f8308f2

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

spring-rabbit/src/main/java/org/springframework/amqp/rabbit/support/DefaultMessagePropertiesConverter.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@
4040
* @author Mark Fisher
4141
* @author Gary Russell
4242
* @author Soeren Unruh
43+
* @author Artem Bilan
44+
*
4345
* @since 1.0
4446
*/
4547
public class DefaultMessagePropertiesConverter implements MessagePropertiesConverter {
@@ -92,8 +94,10 @@ public MessageProperties toMessageProperties(final BasicProperties source, final
9294
String key = entry.getKey();
9395
if (MessageProperties.X_DELAY.equals(key)) {
9496
Object value = entry.getValue();
95-
if (value instanceof Integer integ) {
96-
target.setReceivedDelay(integ);
97+
if (value instanceof Number numberValue) {
98+
int receivedDelayLongValue = numberValue.intValue();
99+
target.setReceivedDelay(receivedDelayLongValue);
100+
target.setHeader(key, receivedDelayLongValue);
97101
}
98102
}
99103
else {
@@ -174,7 +178,7 @@ private Map<String, Object> convertHeadersIfNecessary(Map<String, Object> header
174178
}
175179

176180
/**
177-
* Converts a header value to a String if the value type is unsupported by AMQP, also handling values
181+
* Convert a header value to a String if the value type is unsupported by AMQP, also handling values
178182
* nested inside Lists or Maps.
179183
* <p> {@code null} values are passed through, although Rabbit client will throw an IllegalArgumentException.
180184
* @param valueArg the value.

0 commit comments

Comments
 (0)