Skip to content

Commit

Permalink
PrettyFormatter: Fix ArrayIndexOutOfBoundException with CRLF files.
Browse files Browse the repository at this point in the history
Change I6d82ce322d401743a8de5ab8090b2adc43a909f5 added a workaround for
a bug in prettify, by temporarily adding a space before each \n
character.

For files with CRLF line endings, this means replacing "\r\n" by
"\r<space>\n", which prettify sees as two lines. This leads to a
crash since Gerrit expects a consistent number of lines even after
prettify.

When Show Line Endings is active, the issue does not appear since \r
are replaced with a specific markup, without any actual \r.

Change-Id: I345e332225e449c6f26871476f1a07e67458da59
  • Loading branch information
afabre committed Jun 30, 2013
1 parent dc57f02 commit 4faa731
Showing 1 changed file with 2 additions and 2 deletions.
Expand Up @@ -145,9 +145,9 @@ public void format(SparseFileContent src) {
// Drop any '\r' to avoid this problem.
html = html.replace("\r</span>\n", "</span>\n");

html = html.replace("\n", " \n");
html = html.replaceAll("(\r)?\n", " $1\n");
html = prettify(html, getFileType());
html = html.replace(" \n", "\n");
html = html.replaceAll(" (\r)?\n", "$1\n");
} else {
html = expandTabs(html);
}
Expand Down

0 comments on commit 4faa731

Please sign in to comment.