[jboss-cvs] JBoss Messaging SVN: r3286 - in trunk: src/main/org/jboss/messaging/core/impl/message and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Nov 2 17:51:15 EDT 2007


Author: clebert.suconic at jboss.com
Date: 2007-11-02 17:51:14 -0400 (Fri, 02 Nov 2007)
New Revision: 3286

Modified:
   trunk/src/main/org/jboss/jms/message/JBossObjectMessage.java
   trunk/src/main/org/jboss/messaging/core/impl/message/MessageSupport.java
   trunk/src/main/org/jboss/messaging/util/StreamUtils.java
   trunk/tests/src/org/jboss/test/messaging/jms/message/ObjectMessageTest.java
Log:
JBMESSAGING-1138 - applying fixes from stable branch

Modified: trunk/src/main/org/jboss/jms/message/JBossObjectMessage.java
===================================================================
--- trunk/src/main/org/jboss/jms/message/JBossObjectMessage.java	2007-11-02 21:43:15 UTC (rev 3285)
+++ trunk/src/main/org/jboss/jms/message/JBossObjectMessage.java	2007-11-02 21:51:14 UTC (rev 3286)
@@ -21,7 +21,11 @@
   */
 package org.jboss.jms.message;
 
+import org.jboss.messaging.util.StreamUtils;
+
 import java.io.Serializable;
+import java.io.DataOutputStream;
+import java.io.IOException;
 import java.util.Map;
 
 import javax.jms.JMSException;
@@ -132,6 +136,11 @@
 
    // Protected -----------------------------------------------------
 
+   protected void doWriteObject(DataOutputStream out, Object payload) throws IOException
+   {
+      StreamUtils.writeObject(out, payload, false, true);
+   }
+
    // Private -------------------------------------------------------
 
    // Inner classes -------------------------------------------------

Modified: trunk/src/main/org/jboss/messaging/core/impl/message/MessageSupport.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/impl/message/MessageSupport.java	2007-11-02 21:43:15 UTC (rev 3285)
+++ trunk/src/main/org/jboss/messaging/core/impl/message/MessageSupport.java	2007-11-02 21:51:14 UTC (rev 3286)
@@ -28,6 +28,7 @@
 import java.io.Serializable;
 import java.util.HashMap;
 import java.util.Map;
+import java.io.IOException;
 
 import org.jboss.logging.Logger;
 import org.jboss.messaging.core.contract.Message;
@@ -212,7 +213,7 @@
 			{
 				ByteArrayOutputStream bos = new ByteArrayOutputStream(BUFFER_SIZE);
 				DataOutputStream daos = new DataOutputStream(bos);
-				StreamUtils.writeObject(daos, payload, true, true);
+				doWriteObject(daos, payload);
 				daos.close();
 				payloadAsByteArray = bos.toByteArray();				
 				
@@ -230,7 +231,7 @@
 		return payloadAsByteArray;
 	}
 
-	public synchronized Object getPayload()
+   public synchronized Object getPayload()
 	{		
 		if (payload != null)
 		{
@@ -390,6 +391,13 @@
 
 	// Protected -----------------------------------------------------
 
+   // Certain MessageTypes will need different behaviors. For example ObjectMessages won't use container types
+   protected void doWriteObject(DataOutputStream out, Object payload) throws IOException
+   {
+      StreamUtils.writeObject(out, payload, true, true);
+   }
+
+
 	// Private -------------------------------------------------------
 
 	// Inner classes -------------------------------------------------

Modified: trunk/src/main/org/jboss/messaging/util/StreamUtils.java
===================================================================
--- trunk/src/main/org/jboss/messaging/util/StreamUtils.java	2007-11-02 21:43:15 UTC (rev 3285)
+++ trunk/src/main/org/jboss/messaging/util/StreamUtils.java	2007-11-02 21:51:14 UTC (rev 3286)
@@ -240,7 +240,7 @@
       {
          out.write(LIST);
          writeList(out, (List)object);
-      }      
+      }
       else if (object instanceof Serializable)
       {
          out.writeByte(SERIALIZABLE);

Modified: trunk/tests/src/org/jboss/test/messaging/jms/message/ObjectMessageTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/message/ObjectMessageTest.java	2007-11-02 21:43:15 UTC (rev 3285)
+++ trunk/tests/src/org/jboss/test/messaging/jms/message/ObjectMessageTest.java	2007-11-02 21:51:14 UTC (rev 3286)
@@ -111,6 +111,23 @@
 
    }
 
+
+   public void testVecorOnObjectMessage() throws Exception
+   {
+      java.util.Vector vectorOnMessage = new java.util.Vector();
+      vectorOnMessage.add("world!");
+      ((ObjectMessage)message).setObject(vectorOnMessage);
+
+      queueProd.send(message);
+
+      ObjectMessage r = (ObjectMessage) queueCons.receive(5000);
+      assertNotNull(r);
+
+      java.util.Vector v2 = (java.util.Vector) r.getObject();
+
+      assertEquals(vectorOnMessage.get(0), v2.get(0));
+   }
+
    // Protected ------------------------------------------------------------------------------------
 
    protected void prepareMessage(Message m) throws JMSException




More information about the jboss-cvs-commits mailing list