Thank you Carter. Gary
On Mon, Jul 16, 2018 at 8:47 AM <[email protected]> wrote: > Repository: logging-log4j2 > Updated Branches: > refs/heads/master ac0bf4bbe -> 424e6a0fe > > > Revert "Inline private StringBuilders.escapeAndDecrement" > > This reverts commit ac0bf4bbe85cd4a07af195b3b001717a72888794. > > > Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo > Commit: > http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/424e6a0f > Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/424e6a0f > Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/424e6a0f > > Branch: refs/heads/master > Commit: 424e6a0fe4c203cfdd6e0219edc62158febb34f7 > Parents: ac0bf4b > Author: Carter Kozak <[email protected]> > Authored: Mon Jul 16 10:47:05 2018 -0400 > Committer: Carter Kozak <[email protected]> > Committed: Mon Jul 16 10:47:05 2018 -0400 > > ---------------------------------------------------------------------- > .../logging/log4j/util/StringBuilders.java | 28 +++++++++++--------- > 1 file changed, 15 insertions(+), 13 deletions(-) > ---------------------------------------------------------------------- > > > > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/424e6a0f/log4j-api/src/main/java/org/apache/logging/log4j/util/StringBuilders.java > ---------------------------------------------------------------------- > diff --git > a/log4j-api/src/main/java/org/apache/logging/log4j/util/StringBuilders.java > b/log4j-api/src/main/java/org/apache/logging/log4j/util/StringBuilders.java > index 505abf1..2a83b24 100644 > --- > a/log4j-api/src/main/java/org/apache/logging/log4j/util/StringBuilders.java > +++ > b/log4j-api/src/main/java/org/apache/logging/log4j/util/StringBuilders.java > @@ -197,33 +197,28 @@ public final class StringBuilders { > final char c = toAppendTo.charAt(i); > switch (c) { > case '\b': > - toAppendTo.setCharAt(lastPos--, 'b'); > - toAppendTo.setCharAt(lastPos--, '\\'); > + lastPos = escapeAndDecrement(toAppendTo, lastPos, > 'b'); > break; > + > case '\t': > - toAppendTo.setCharAt(lastPos--, 't'); > - toAppendTo.setCharAt(lastPos--, '\\'); > + lastPos = escapeAndDecrement(toAppendTo, lastPos, > 't'); > break; > > case '\f': > - toAppendTo.setCharAt(lastPos--, 'f'); > - toAppendTo.setCharAt(lastPos--, '\\'); > + lastPos = escapeAndDecrement(toAppendTo, lastPos, > 'f'); > break; > > case '\n': > - toAppendTo.setCharAt(lastPos--, 'n'); > - toAppendTo.setCharAt(lastPos--, '\\'); > + lastPos = escapeAndDecrement(toAppendTo, lastPos, > 'n'); > break; > > case '\r': > - toAppendTo.setCharAt(lastPos--, 'r'); > - toAppendTo.setCharAt(lastPos--, '\\'); > + lastPos = escapeAndDecrement(toAppendTo, lastPos, > 'r'); > break; > > case '"': > case '\\': > - toAppendTo.setCharAt(lastPos--, c); > - toAppendTo.setCharAt(lastPos--, '\\'); > + lastPos = escapeAndDecrement(toAppendTo, lastPos, c); > break; > > default: > @@ -236,12 +231,19 @@ public final class StringBuilders { > toAppendTo.setCharAt(lastPos--, 'u'); > toAppendTo.setCharAt(lastPos--, '\\'); > } else { > - toAppendTo.setCharAt(lastPos--, c); > + toAppendTo.setCharAt(lastPos, c); > + lastPos--; > } > } > } > } > > + private static int escapeAndDecrement(StringBuilder toAppendTo, int > lastPos, char c) { > + toAppendTo.setCharAt(lastPos--, c); > + toAppendTo.setCharAt(lastPos--, '\\'); > + return lastPos; > + } > + > public static void escapeXml(final StringBuilder toAppendTo, final > int start) { > for (int i = toAppendTo.length() - 1; i >= start; i--) { // > backwards: length may change > final char c = toAppendTo.charAt(i); > >
