diff --git a/src/main/java/com/rabbitmq/client/amqp/impl/AmqpMessage.java b/src/main/java/com/rabbitmq/client/amqp/impl/AmqpMessage.java index 5dcdad6e3..988f7cab9 100644 --- a/src/main/java/com/rabbitmq/client/amqp/impl/AmqpMessage.java +++ b/src/main/java/com/rabbitmq/client/amqp/impl/AmqpMessage.java @@ -499,6 +499,7 @@ public Object annotation(String key) { @Override public Message annotation(String key, Object value) { + Utils.validateMessageAnnotationKey(key); callOnDelegate(m -> m.annotation(key, value)); return this; } diff --git a/src/main/java/com/rabbitmq/client/amqp/impl/Utils.java b/src/main/java/com/rabbitmq/client/amqp/impl/Utils.java index b846992a0..e2689baac 100644 --- a/src/main/java/com/rabbitmq/client/amqp/impl/Utils.java +++ b/src/main/java/com/rabbitmq/client/amqp/impl/Utils.java @@ -100,13 +100,13 @@ private static boolean isJava21OrMore() { } static void checkMessageAnnotations(Map annotations) { - annotations.forEach( - (k, v) -> { - if (!k.startsWith("x-")) { - throw new IllegalArgumentException( - "Message annotation keys must start with 'x-': " + k); - } - }); + annotations.forEach((k, v) -> validateMessageAnnotationKey(k)); + } + + static void validateMessageAnnotationKey(String key) { + if (!key.startsWith("x-")) { + throw new IllegalArgumentException("Message annotation keys must start with 'x-': " + key); + } } private static class NamedThreadFactory implements ThreadFactory {