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

Reply via email to