You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by de...@apache.org on 2008/10/20 16:14:32 UTC

svn commit: r706299 - in /activemq/trunk/activemq-core/src: main/java/org/apache/activemq/command/ main/java/org/apache/activemq/util/ test/java/org/apache/activemq/command/

Author: dejanb
Date: Mon Oct 20 07:14:31 2008
New Revision: 706299

URL: http://svn.apache.org/viewvc?rev=706299&view=rev
Log:
fix for AMQ-1978

Modified:
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ActiveMQTextMessage.java
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/BaseCommand.java
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/Message.java
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/util/IntrospectionSupport.java
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/command/ActiveMQTextMessageTest.java

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ActiveMQTextMessage.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ActiveMQTextMessage.java?rev=706299&r1=706298&r2=706299&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ActiveMQTextMessage.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ActiveMQTextMessage.java Mon Oct 20 07:14:31 2008
@@ -21,6 +21,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.util.HashMap;
 import java.util.zip.DeflaterOutputStream;
 import java.util.zip.InflaterInputStream;
 
@@ -149,7 +150,13 @@
     
     public String toString() {
         try {
-            getText();
+            String text = getText();
+        	if (text.length() > 63) {
+        		text = text.substring(0, 45) + "..." + text.substring(text.length() - 12);
+        		HashMap<String, Object> overrideFields = new HashMap<String, Object>();
+        		overrideFields.put("text", text);
+        		return super.toString(overrideFields);
+        	}
         } catch (JMSException e) {
         }
         return super.toString();

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/BaseCommand.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/BaseCommand.java?rev=706299&r1=706298&r2=706299&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/BaseCommand.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/BaseCommand.java Mon Oct 20 07:14:31 2008
@@ -16,6 +16,8 @@
  */
 package org.apache.activemq.command;
 
+import java.util.Map;
+
 import org.apache.activemq.util.IntrospectionSupport;
 
 
@@ -60,7 +62,11 @@
     }
 
     public String toString() {
-        return IntrospectionSupport.toString(this, BaseCommand.class);
+        return toString(null);
+    }
+    
+    public String toString(Map<String, Object>overrideFields) {
+    	return IntrospectionSupport.toString(this, BaseCommand.class, overrideFields);
     }
     
     public boolean isWireFormatInfo() {

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/Message.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/Message.java?rev=706299&r1=706298&r2=706299&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/Message.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/Message.java Mon Oct 20 07:14:31 2008
@@ -721,10 +721,14 @@
     }
     
     public String toString() {
+        return toString(null);
+    }
+    
+    public String toString(Map<String, Object>overrideFields) {
         try {
             getProperties();
         } catch (IOException e) {
         }
-        return super.toString();
+        return super.toString(overrideFields);
     }    
 }

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/util/IntrospectionSupport.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/util/IntrospectionSupport.java?rev=706299&r1=706298&r2=706299&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/util/IntrospectionSupport.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/util/IntrospectionSupport.java Mon Oct 20 07:14:31 2008
@@ -28,8 +28,8 @@
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.Set;
+import java.util.Map.Entry;
 
 import org.apache.activemq.command.ActiveMQDestination;
 
@@ -229,12 +229,23 @@
     }
 
     public static String toString(Object target) {
-        return toString(target, Object.class);
+        return toString(target, Object.class, null);
     }
-
+    
     public static String toString(Object target, Class stopClass) {
+    	return toString(target, stopClass, null);
+    }
+
+    public static String toString(Object target, Class stopClass, Map<String, Object> overrideFields) {
         LinkedHashMap<String, Object> map = new LinkedHashMap<String, Object>();
         addFields(target, target.getClass(), stopClass, map);
+        if (overrideFields != null) {
+        	for(String key : overrideFields.keySet()) {
+        	    Object value = overrideFields.get(key);
+        	    map.put(key, value);
+        	}
+
+        }
         StringBuffer buffer = new StringBuffer(simpleName(target.getClass()));
         buffer.append(" {");
         Set entrySet = map.entrySet();

Modified: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/command/ActiveMQTextMessageTest.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/command/ActiveMQTextMessageTest.java?rev=706299&r1=706298&r2=706299&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/test/java/org/apache/activemq/command/ActiveMQTextMessageTest.java (original)
+++ activemq/trunk/activemq-core/src/test/java/org/apache/activemq/command/ActiveMQTextMessageTest.java Mon Oct 20 07:14:31 2008
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.command;
 
+import java.io.DataOutputStream;
 import java.io.IOException;
 
 import javax.jms.JMSException;
@@ -25,7 +26,9 @@
 import junit.framework.TestCase;
 import junit.textui.TestRunner;
 
+import org.apache.activemq.util.ByteArrayOutputStream;
 import org.apache.activemq.util.ByteSequence;
+import org.apache.activemq.util.MarshallingSupport;
 
 /**
  * @version $Revision$
@@ -124,4 +127,27 @@
         } catch (MessageNotWriteableException mnwe) {
         }
     }
+    
+    public void testShortText() throws Exception {
+        String shortText = "Content";
+    	ActiveMQTextMessage shortMessage = new ActiveMQTextMessage();
+        setContent(shortMessage, shortText);
+        assertTrue(shortMessage.toString().contains("text = " + shortText));
+        assertTrue(shortMessage.getText().equals(shortText));
+        
+        String longText = "Very very very very veeeeeeery loooooooooooooooooooooooooooooooooong text";
+        String longExpectedText = "Very very very very veeeeeeery looooooooooooo...ooooong text";
+        ActiveMQTextMessage longMessage = new ActiveMQTextMessage();
+        setContent(longMessage, longText);
+        assertTrue(longMessage.toString().contains("text = " + longExpectedText));
+        assertTrue(longMessage.getText().equals(longText));         
+    }
+    
+    protected void setContent(Message message, String text) throws Exception {
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        DataOutputStream dataOut = new DataOutputStream(baos);
+        MarshallingSupport.writeUTF8(dataOut, text);
+        dataOut.close();
+        message.setContent(baos.toByteSequence());
+    }
 }