You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by sc...@apache.org on 2010/12/14 21:49:28 UTC

svn commit: r1049263 - in /tomcat/trunk/java/org/apache: catalina/ha/deploy/FileMessageFactory.java coyote/ajp/AjpMessage.java tomcat/util/buf/HexUtils.java

Author: schultz
Date: Tue Dec 14 20:49:28 2010
New Revision: 1049263

URL: http://svn.apache.org/viewvc?rev=1049263&view=rev
Log:
Fixed bug #49125: toString on byte[] array probably is not correct
- Added HexUtils.toHexString method
- Wrapped output of byte[] objects with a call to HexUtils.toHexString

Modified:
    tomcat/trunk/java/org/apache/catalina/ha/deploy/FileMessageFactory.java
    tomcat/trunk/java/org/apache/coyote/ajp/AjpMessage.java
    tomcat/trunk/java/org/apache/tomcat/util/buf/HexUtils.java

Modified: tomcat/trunk/java/org/apache/catalina/ha/deploy/FileMessageFactory.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/deploy/FileMessageFactory.java?rev=1049263&r1=1049262&r2=1049263&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/ha/deploy/FileMessageFactory.java (original)
+++ tomcat/trunk/java/org/apache/catalina/ha/deploy/FileMessageFactory.java Tue Dec 14 20:49:28 2010
@@ -28,6 +28,7 @@ import java.util.concurrent.atomic.Atomi
 
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
+import org.apache.tomcat.util.buf.HexUtils;
 
 /**
  * This factory is used to read files and write files by splitting them up into
@@ -227,7 +228,7 @@ public class FileMessageFactory {
             throw new IllegalArgumentException(
                     "Can't write message, this factory is reading.");
         if (log.isDebugEnabled())
-            log.debug("Message " + msg + " data " + msg.getData()
+            log.debug("Message " + msg + " data " + HexUtils.toHexString(msg.getData())
                     + " data length " + msg.getDataLength() + " out " + out);
         
         if (msg.getMessageNumber() <= lastMessageProcessed.get()) {

Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpMessage.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpMessage.java?rev=1049263&r1=1049262&r2=1049263&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AjpMessage.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AjpMessage.java Tue Dec 14 20:49:28 2010
@@ -21,6 +21,7 @@ import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.buf.ByteChunk;
 import org.apache.tomcat.util.buf.CharChunk;
+import org.apache.tomcat.util.buf.HexUtils;
 import org.apache.tomcat.util.buf.MessageBytes;
 import org.apache.tomcat.util.res.StringManager;
 
@@ -372,7 +373,7 @@ public class AjpMessage {
      */
     public void dump(String msg) {
         if (log.isDebugEnabled()) {
-            log.debug(msg + ": " + buf + " " + pos +"/" + (len + 4));
+            log.debug(msg + ": " + HexUtils.toHexString(buf) + " " + pos +"/" + (len + 4));
         }
         int max = pos;
         if (len + 4 > pos)

Modified: tomcat/trunk/java/org/apache/tomcat/util/buf/HexUtils.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/buf/HexUtils.java?rev=1049263&r1=1049262&r2=1049263&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/buf/HexUtils.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/buf/HexUtils.java Tue Dec 14 20:49:28 2010
@@ -63,6 +63,11 @@ public final class HexUtils {
       (byte) 'c', (byte) 'd', (byte) 'e', (byte) 'f' };
 
 
+    /**
+     * Table for byte to hex string translation.
+     */
+    private static final char[] hex = "0123456789abcdef".toCharArray();
+
     // --------------------------------------------------------- Static Methods
 
 
@@ -80,4 +85,18 @@ public final class HexUtils {
     public static byte getHex(int index){
         return HEX[index];
     }
-}
\ No newline at end of file
+
+    public static String toHexString(byte[] bytes)
+    {
+        if(null == bytes) return null;
+
+        StringBuilder sb = new StringBuilder(bytes.length << 1);
+
+        for(int i=0; i<bytes.length; ++i)
+            sb.append(hex[(bytes[i] & 0xf0) >> 4])
+                .append(hex[(bytes[i] & 0x0f)])
+                ;
+
+        return sb.toString();
+    }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org