diff options
Diffstat (limited to 'jetty-util/src/main/java/org/eclipse/jetty/util/BufferUtil.java')
-rw-r--r-- | jetty-util/src/main/java/org/eclipse/jetty/util/BufferUtil.java | 57 |
1 files changed, 33 insertions, 24 deletions
diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/BufferUtil.java b/jetty-util/src/main/java/org/eclipse/jetty/util/BufferUtil.java index 6e5c85b4e9..49377144e1 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/BufferUtil.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/BufferUtil.java @@ -32,6 +32,7 @@ import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.Arrays; +import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.resource.Resource; @@ -1027,38 +1028,46 @@ public class BufferUtil private static void appendDebugString(StringBuilder buf,ByteBuffer buffer) { - for (int i = 0; i < buffer.position(); i++) + try { - appendContentChar(buf,buffer.get(i)); - if (i == 16 && buffer.position() > 32) + for (int i = 0; i < buffer.position(); i++) { - buf.append("..."); - i = buffer.position() - 16; + appendContentChar(buf,buffer.get(i)); + if (i == 16 && buffer.position() > 32) + { + buf.append("..."); + i = buffer.position() - 16; + } } - } - buf.append("<<<"); - for (int i = buffer.position(); i < buffer.limit(); i++) - { - appendContentChar(buf,buffer.get(i)); - if (i == buffer.position() + 16 && buffer.limit() > buffer.position() + 32) + buf.append("<<<"); + for (int i = buffer.position(); i < buffer.limit(); i++) { - buf.append("..."); - i = buffer.limit() - 16; + appendContentChar(buf,buffer.get(i)); + if (i == buffer.position() + 16 && buffer.limit() > buffer.position() + 32) + { + buf.append("..."); + i = buffer.limit() - 16; + } } - } - buf.append(">>>"); - int limit = buffer.limit(); - buffer.limit(buffer.capacity()); - for (int i = limit; i < buffer.capacity(); i++) - { - appendContentChar(buf,buffer.get(i)); - if (i == limit + 16 && buffer.capacity() > limit + 32) + buf.append(">>>"); + int limit = buffer.limit(); + buffer.limit(buffer.capacity()); + for (int i = limit; i < buffer.capacity(); i++) { - buf.append("..."); - i = buffer.capacity() - 16; + appendContentChar(buf,buffer.get(i)); + if (i == limit + 16 && buffer.capacity() > limit + 32) + { + buf.append("..."); + i = buffer.capacity() - 16; + } } + buffer.limit(limit); + } + catch(Throwable x) + { + Log.getRootLogger().ignore(x); + buf.append("!!concurrent mod!!"); } - buffer.limit(limit); } private static void appendContentChar(StringBuilder buf, byte b) |