[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