Mercurial > hg > monetdb-java
changeset 654:755c05380872
Optimise waitForPrompt() by delaying the creation of a new StringBuilder object till it is really needed.
author | Martin van Dinther <martin.van.dinther@monetdbsolutions.com> |
---|---|
date | Thu, 08 Sep 2022 15:50:59 +0200 (2022-09-08) |
parents | 5eb9d54057e6 |
children | 2ded26c5a679 |
files | src/main/java/org/monetdb/mcl/io/BufferedMCLReader.java |
diffstat | 1 files changed, 9 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/main/java/org/monetdb/mcl/io/BufferedMCLReader.java +++ b/src/main/java/org/monetdb/mcl/io/BufferedMCLReader.java @@ -131,16 +131,21 @@ public final class BufferedMCLReader ext * TODO(Wouter): should probably not have to be synchronized. */ final public synchronized String waitForPrompt() throws IOException { - final StringBuilder ret = new StringBuilder(128); + StringBuilder errmsgs = null; String tmp; while (lineType != LineType.PROMPT) { tmp = readLine(); if (tmp == null) throw new IOException("Connection to server lost!"); - if (lineType == LineType.ERROR) - ret.append('\n').append(tmp.substring(1)); + if (lineType == LineType.ERROR) { + if (errmsgs == null) + errmsgs = new StringBuilder(128); + errmsgs.append('\n').append(tmp.substring(1).trim()); + } } - return ret.length() == 0 ? null : ret.toString().trim(); + if (errmsgs == null) + return null; + return errmsgs.toString(); } }