Repository: qpid-jms Updated Branches: refs/heads/master c311a4218 -> 4723c5a1f
Update priority scaling to handle values above the signed byte range. Change methods to use int so facades see original value, contain any casting to within facade. Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/5e237be5 Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/5e237be5 Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/5e237be5 Branch: refs/heads/master Commit: 5e237be52d91909e489c6bed7296b90345779f2b Parents: c311a42 Author: Robert Gemmell <rob...@apache.org> Authored: Tue Oct 7 10:16:45 2014 +0100 Committer: Robert Gemmell <rob...@apache.org> Committed: Tue Oct 7 10:16:45 2014 +0100 ---------------------------------------------------------------------- .../org/apache/qpid/jms/message/JmsMessage.java | 2 +- .../jms/message/facade/JmsMessageFacade.java | 4 +-- .../amqp/message/AmqpJmsMessageFacade.java | 18 ++++++------ .../JmsMessagePropertyIntercepterTest.java | 8 +++--- .../defaults/JmsDefaultMessageFacade.java | 6 ++-- .../amqp/message/AmqpJmsMessageFacadeTest.java | 30 ++++++++++++++++---- 6 files changed, 44 insertions(+), 24 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/5e237be5/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessage.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessage.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessage.java index 122c3ab..54ff011 100644 --- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessage.java +++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessage.java @@ -235,7 +235,7 @@ public class JmsMessage implements javax.jms.Message { @Override public void setJMSPriority(int priority) throws JMSException { - facade.setPriority((byte) priority); + facade.setPriority(priority); } @Override http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/5e237be5/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsMessageFacade.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsMessageFacade.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsMessageFacade.java index 3bbea29..01be4d6 100644 --- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsMessageFacade.java +++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsMessageFacade.java @@ -296,7 +296,7 @@ public interface JmsMessageFacade { * * @return the priority value assigned to this message. */ - byte getPriority(); + int getPriority(); /** * Sets the message priority for this message using a JMS priority scoped value. @@ -304,7 +304,7 @@ public interface JmsMessageFacade { * @param priority * the new priority value to set on this message. */ - void setPriority(byte priority); + void setPriority(int priority); /** * Returns the set expiration time for this message. http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/5e237be5/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java index 07079c1..c05f159 100644 --- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java +++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java @@ -548,16 +548,15 @@ public class AmqpJmsMessageFacade implements JmsMessageFacade { } @Override - public byte getPriority() { + public int getPriority() { if (message.getHeader() != null) { UnsignedByte priority = message.getHeader().getPriority(); if (priority != null) { - byte scaled = priority.byteValue(); - if (scaled < 0) { - scaled = 0; - } else if (scaled > 9) { + int scaled = priority.intValue(); + if (scaled > 9) { scaled = 9; } + return scaled; } } @@ -566,7 +565,7 @@ public class AmqpJmsMessageFacade implements JmsMessageFacade { } @Override - public void setPriority(byte priority) { + public void setPriority(int priority) { if (priority == DEFAULT_PRIORITY) { if (message.getHeader() == null) { return; @@ -574,13 +573,14 @@ public class AmqpJmsMessageFacade implements JmsMessageFacade { message.getHeader().setPriority(null); } } else { + byte scaled = (byte) priority; if (priority < 0) { - priority = 0; + scaled = 0; } else if (priority > 9) { - priority = 9; + scaled = 9; } - message.setPriority(priority); + message.setPriority(scaled); } } http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/5e237be5/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepterTest.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepterTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepterTest.java index d9ed2b3..e9ad243 100644 --- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepterTest.java +++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepterTest.java @@ -250,7 +250,7 @@ public class JmsMessagePropertyIntercepterTest { @Test public void testGetJMSPriorityWhenNotSet() throws JMSException { JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class); - Mockito.when(message.getPriority()).thenReturn((byte) 4); + Mockito.when(message.getPriority()).thenReturn(4); assertEquals(4, JmsMessagePropertyIntercepter.getProperty(message, JMS_PRIORITY)); Mockito.verify(message).getPriority(); } @@ -258,7 +258,7 @@ public class JmsMessagePropertyIntercepterTest { @Test public void testGetJMSPriorityWhenSet() throws JMSException { JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class); - Mockito.when(message.getPriority()).thenReturn((byte) 9); + Mockito.when(message.getPriority()).thenReturn(9); assertEquals(9, JmsMessagePropertyIntercepter.getProperty(message, JMS_PRIORITY)); } @@ -272,14 +272,14 @@ public class JmsMessagePropertyIntercepterTest { @Test public void testJMSPriorityInGetPropertyNamesWhenDefault() throws JMSException { JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class); - Mockito.when(message.getPriority()).thenReturn((byte) Message.DEFAULT_PRIORITY); + Mockito.when(message.getPriority()).thenReturn(Message.DEFAULT_PRIORITY); assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_PRIORITY)); } @Test public void testJMSPriorityInGetPropertyNamesWhenNotDefault() throws JMSException { JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class); - Mockito.when(message.getPriority()).thenReturn((byte) 1); + Mockito.when(message.getPriority()).thenReturn(1); assertTrue(JmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_PRIORITY)); } http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/5e237be5/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFacade.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFacade.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFacade.java index 31cca9e..2b03987 100644 --- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFacade.java +++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFacade.java @@ -54,7 +54,7 @@ public class JmsDefaultMessageFacade implements JmsMessageFacade { protected Map<String, Object> properties = new HashMap<String, Object>(); - protected byte priority = javax.jms.Message.DEFAULT_PRIORITY; + protected int priority = javax.jms.Message.DEFAULT_PRIORITY; protected String groupId; protected int groupSequence; protected String messageId; @@ -252,12 +252,12 @@ public class JmsDefaultMessageFacade implements JmsMessageFacade { } @Override - public byte getPriority() { + public int getPriority() { return priority; } @Override - public void setPriority(byte priority) { + public void setPriority(int priority) { if (priority < 0) { this.priority = 0; } else if (priority > 9) { http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/5e237be5/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacadeTest.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacadeTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacadeTest.java index 4e0d2d4..f7ea02c 100644 --- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacadeTest.java +++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacadeTest.java @@ -211,6 +211,8 @@ public class AmqpJmsMessageFacadeTest { assertEquals("TTL has not been overriden", overrideTtl, message.getTtl()); } + // --- priority field --- + @Test public void testGetPriorityIs4ForNewMessage() { AmqpJmsMessageFacade amqpMessageFacade = createNewMessageFacade(); @@ -230,8 +232,6 @@ public class AmqpJmsMessageFacadeTest { assertEquals("expected priority value not found", 4, amqpMessageFacade.getPriority()); } - // TODO: start of section marker - /** * When messages have a header section, but lack the priority field, * the AMQP spec says the priority has default value of 4. @@ -267,11 +267,12 @@ public class AmqpJmsMessageFacadeTest { } /** - * When messages have a header section, which have a priority value outside the JMS range, ensure it is constrained. + * When messages have a header section, which has a priority value just above the + * JMS range of 0-9, ensure it is constrained to 9. */ @Test - public void testGetPriorityForReceivedMessageWithPriorityOutsideJmsRange() { - // value over 9 deliberately + public void testGetPriorityForReceivedMessageWithPriorityJustAboveJmsRange() { + // value just over 9 deliberately byte priority = 11; Message message = Proton.message(); @@ -285,6 +286,25 @@ public class AmqpJmsMessageFacadeTest { } /** + * When messages have a header section, which has a priority value above the + * JMS range of 0-9 and also outside the signed byte range (given AMQP + * allowing ubyte priority), ensure it is constrained to 9. + */ + @Test + public void testGetPriorityForReceivedMessageWithPriorityAboveSignedByteRange() { + String priorityString = String.valueOf(255); + + Message message = Proton.message(); + Header header = new Header(); + message.setHeader(header); + header.setPriority(UnsignedByte.valueOf(priorityString)); + + AmqpJmsMessageFacade amqpMessageFacade = createReceivedMessageFacade(createMockAmqpConsumer(), message); + + assertEquals("expected priority value not found", 9, amqpMessageFacade.getPriority()); + } + + /** * Test that setting the Priority to a non-default value results in the underlying * message field being populated appropriately, and the value being returned from the Getter. */ --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org