Author: niallp
Date: Tue Nov 20 04:13:31 2007
New Revision: 596642
URL: http://svn.apache.org/viewvc?rev=596642&view=rev
Log:
IO-136 HexDump's use of static StringBuffers isn't thread-safe
Modified:
commons/proper/io/trunk/src/java/org/apache/commons/io/HexDump.java
Modified: commons/proper/io/trunk/src/java/org/apache/commons/io/HexDump.java
URL:
http://svn.apache.org/viewvc/commons/proper/io/trunk/src/java/org/apache/commons/io/HexDump.java?rev=596642&r1=596641&r2=596642&view=diff
==============================================================================
--- commons/proper/io/trunk/src/java/org/apache/commons/io/HexDump.java
(original)
+++ commons/proper/io/trunk/src/java/org/apache/commons/io/HexDump.java Tue Nov
20 04:13:31 2007
@@ -78,10 +78,10 @@
if (chars_read > 16) {
chars_read = 16;
}
- buffer.append(dump(display_offset)).append(' ');
+ dump(buffer, display_offset).append(' ');
for (int k = 0; k < 16; k++) {
if (k < chars_read) {
- buffer.append(dump(data[k + j]));
+ dump(buffer, data[k + j]);
} else {
buffer.append(" ");
}
@@ -107,8 +107,6 @@
*/
public static final String EOL =
System.getProperty("line.separator");
- private static final StringBuffer _lbuffer = new StringBuffer(8);
- private static final StringBuffer _cbuffer = new StringBuffer(2);
private static final char[] _hexcodes =
{
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
@@ -125,8 +123,7 @@
* @param value the long value to be dumped
* @return StringBuffer containing the dumped value.
*/
- private static StringBuffer dump(long value) {
- _lbuffer.setLength(0);
+ private static StringBuffer dump(StringBuffer _lbuffer, long value) {
for (int j = 0; j < 8; j++) {
_lbuffer
.append(_hexcodes[((int) (value >> _shifts[j])) & 15]);
@@ -140,8 +137,7 @@
* @param value the byte value to be dumped
* @return StringBuffer containing the dumped value.
*/
- private static StringBuffer dump(byte value) {
- _cbuffer.setLength(0);
+ private static StringBuffer dump(StringBuffer _cbuffer, byte value) {
for (int j = 0; j < 2; j++) {
_cbuffer.append(_hexcodes[(value >> _shifts[j + 6]) & 15]);
}