[jboss-cvs] JBoss Messaging SVN: r7508 - in branches/Branch_1_4: tests/src/org/jboss/test/messaging/jms/message and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jul 1 09:39:08 EDT 2009


Author: gaohoward
Date: 2009-07-01 09:39:07 -0400 (Wed, 01 Jul 2009)
New Revision: 7508

Modified:
   branches/Branch_1_4/src/main/org/jboss/jms/message/JBossMessage.java
   branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/message/MessageHeaderTest.java
   branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/message/SimpleJMSMessage.java
Log:
JBMESSAGING-1617


Modified: branches/Branch_1_4/src/main/org/jboss/jms/message/JBossMessage.java
===================================================================
--- branches/Branch_1_4/src/main/org/jboss/jms/message/JBossMessage.java	2009-07-01 05:44:19 UTC (rev 7507)
+++ branches/Branch_1_4/src/main/org/jboss/jms/message/JBossMessage.java	2009-07-01 13:39:07 UTC (rev 7508)
@@ -339,12 +339,29 @@
 
       setJMSTimestamp(foreign.getJMSTimestamp());
 
-      //https://jira.jboss.org/jira/browse/JBMESSAGING-1617
-      String corrIDString = foreign.getJMSCorrelationID();
-      if (corrIDString != null)
+      try
       {
-         setJMSCorrelationID(corrIDString);
+         byte[] corrIDBytes = foreign.getJMSCorrelationIDAsBytes();
+         setJMSCorrelationIDAsBytes(corrIDBytes);
       }
+      catch(JMSException e)
+      {
+         // specified as String
+         String corrIDString = foreign.getJMSCorrelationID();
+         if (corrIDString != null)
+         {
+            setJMSCorrelationID(corrIDString);
+         }
+      }
+      catch(UnsupportedOperationException e)
+      {
+         //https://jira.jboss.org/jira/browse/JBMESSAGING-1617
+         String corrIDString = foreign.getJMSCorrelationID();
+         if (corrIDString != null)
+         {
+            setJMSCorrelationID(corrIDString);
+         }
+      }
       
       setJMSReplyTo(foreign.getJMSReplyTo());
       setJMSDestination(foreign.getJMSDestination());

Modified: branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/message/MessageHeaderTest.java
===================================================================
--- branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/message/MessageHeaderTest.java	2009-07-01 05:44:19 UTC (rev 7507)
+++ branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/message/MessageHeaderTest.java	2009-07-01 13:39:07 UTC (rev 7508)
@@ -873,6 +873,17 @@
       assertEquals(foreignMessage.getJMSCorrelationID(), copy.getJMSCorrelationID());
    }
 
+   //https://jira.jboss.org/jira/browse/JBMESSAGING-1617
+   public void testCopyForeignCorrelationIDNoBytesID() throws JMSException
+   {
+      Message foreignMessage = new SimpleJMSMessage(false);
+      foreignMessage.setJMSCorrelationID("ID:test-string-id");
+      
+      JBossMessage copy = new JBossMessage(foreignMessage, 0);
+
+      assertEquals(foreignMessage.getJMSCorrelationID(), copy.getJMSCorrelationID());
+   }
+   
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------

Modified: branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/message/SimpleJMSMessage.java
===================================================================
--- branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/message/SimpleJMSMessage.java	2009-07-01 05:44:19 UTC (rev 7507)
+++ branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/message/SimpleJMSMessage.java	2009-07-01 13:39:07 UTC (rev 7508)
@@ -69,7 +69,11 @@
    	this.ignoreSetDestination = true;
    	this.destination = dest;
    }
-      
+   
+   public SimpleJMSMessage(boolean allowBytesId)
+   {
+      this.supportBytesId = allowBytesId;
+   }
 
    // Message implementation ----------------------------------------
 
@@ -106,10 +110,15 @@
    private byte[] correlationIDBytes;
    private String correlationIDString;
    private boolean isCorrelationIDBytes;
+   private boolean supportBytesId = true;
 
 
    public byte[] getJMSCorrelationIDAsBytes() throws JMSException
    {
+      if (!supportBytesId)
+      {
+         throw new UnsupportedOperationException("Don't support bytes ID");
+      }
       if (!isCorrelationIDBytes)
       {
          throw new JMSException("CorrelationID is a String for this message");
@@ -119,6 +128,10 @@
 
    public void setJMSCorrelationIDAsBytes(byte[] correlationID) throws JMSException
    {
+      if (!supportBytesId)
+      {
+         throw new UnsupportedOperationException("Don't support bytes ID");
+      }
       if (correlationID == null || correlationID.length == 0)
       {
          throw new JMSException("Please specify a non-zero length byte[]");




More information about the jboss-cvs-commits mailing list