Do not rely on ArrayIndexOutOfBoundsException to detect end of input
In the Config#StringReader we relied on ArrayIndexOutOfBoundsException to detect the end of the input. Creation of exception with (deep) stack trace can significantly degrade performance in case when we read thousands of config files, like in the case when Gerrit reads all external ids from the NoteDb. Use the buf.length to detect the end of the input. Change-Id: I12266f25751373a870ce3fa623cf2a95d882d521
This commit is contained in:
parent
e3f535cb15
commit
3d8649ddef
|
@ -1457,12 +1457,10 @@ private static class StringReader {
|
|||
}
|
||||
|
||||
int read() {
|
||||
try {
|
||||
return buf[pos++];
|
||||
} catch (ArrayIndexOutOfBoundsException e) {
|
||||
pos = buf.length;
|
||||
if (pos >= buf.length) {
|
||||
return -1;
|
||||
}
|
||||
return buf[pos++];
|
||||
}
|
||||
|
||||
void reset() {
|
||||
|
|
Loading…
Reference in New Issue