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-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org