diff --git a/CONTRIBUTORS b/CONTRIBUTORS index e45c14031..cf6336f70 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1,5 +1,6 @@ Amongst other, the following people contributed to ant: +Adam Blinkinsop Aleksandr Ishutin Alexey Panchenko Alexey Solofnenko diff --git a/contributors.xml b/contributors.xml index 3c98eca29..160320e83 100644 --- a/contributors.xml +++ b/contributors.xml @@ -30,6 +30,10 @@ These are some of the many people who have helped Ant become so successful. + + Adam + Blinkinsop + Aleksandr Ishutin diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/net/RExecTask.java b/src/main/org/apache/tools/ant/taskdefs/optional/net/RExecTask.java index 0ca112396..a85b0224c 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/net/RExecTask.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/net/RExecTask.java @@ -203,14 +203,17 @@ public class RExecTask extends Task { InputStream is = this.getInputStream(); try { StringBuffer sb = new StringBuffer(); + int windowStart = -s.length(); if (timeout == null || timeout.intValue() == 0) { - while (sb.toString().indexOf(s) == -1) { + while (windowStart++ < 0 + || !sb.substring(windowStart).equals(s)) { sb.append((char) is.read()); } } else { Calendar endTime = Calendar.getInstance(); endTime.add(Calendar.SECOND, timeout.intValue()); - while (sb.toString().indexOf(s) == -1) { + while (windowStart++ < 0 + || !sb.substring(windowStart).equals(s)) { while (Calendar.getInstance().before(endTime) && is.available() == 0) { Thread.sleep(PAUSE_TIME); diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/net/TelnetTask.java b/src/main/org/apache/tools/ant/taskdefs/optional/net/TelnetTask.java index 3dea2626e..a982764de 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/net/TelnetTask.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/net/TelnetTask.java @@ -340,14 +340,17 @@ public class TelnetTask extends Task { InputStream is = this.getInputStream(); try { StringBuffer sb = new StringBuffer(); + int windowStart = -s.length(); if (timeout == null || timeout.intValue() == 0) { - while (sb.toString().indexOf(s) == -1) { + while (windowStart++ < 0 + || !sb.substring(windowStart).equals(s)) { sb.append((char) is.read()); } } else { Calendar endTime = Calendar.getInstance(); endTime.add(Calendar.SECOND, timeout.intValue()); - while (sb.toString().indexOf(s) == -1) { + while (windowStart++ < 0 + || !sb.substring(windowStart).equals(s)) { while (Calendar.getInstance().before(endTime) && is.available() == 0) { Thread.sleep(WAIT_INTERVAL);