diff --git a/common/src/main/java/org/jboss/pnc/buildagent/common/StringLiner.java b/common/src/main/java/org/jboss/pnc/buildagent/common/StringLiner.java index 6ed53d2..3c030f7 100644 --- a/common/src/main/java/org/jboss/pnc/buildagent/common/StringLiner.java +++ b/common/src/main/java/org/jboss/pnc/buildagent/common/StringLiner.java @@ -12,14 +12,16 @@ public void append(String string) { } public synchronized String nextLine() { - int nlLength = 1; - int nlPosition = stringBuffer.indexOf("\n"); - if (nlPosition == -1) { - nlPosition = stringBuffer.indexOf("\r"); - } - if (nlPosition == -1) { - nlPosition = stringBuffer.indexOf("\r\n"); + int nlLength; + int nlPosition = stringBuffer.indexOf("\r\n"); + if (nlPosition > -1) { nlLength = 2; + } else { + nlLength = 1; + nlPosition = stringBuffer.indexOf("\n"); + if (nlPosition == -1) { + nlPosition = stringBuffer.indexOf("\r"); + } } if (nlPosition > -1) { String line = stringBuffer.substring(0, nlPosition); diff --git a/common/src/test/java/org/jboss/pnc/buildagent/common/StringLinerTest.java b/common/src/test/java/org/jboss/pnc/buildagent/common/StringLinerTest.java new file mode 100644 index 0000000..13c9797 --- /dev/null +++ b/common/src/test/java/org/jboss/pnc/buildagent/common/StringLinerTest.java @@ -0,0 +1,35 @@ +package org.jboss.pnc.buildagent.common; + +import org.junit.Assert; +import org.junit.Test; + +public class StringLinerTest { + @Test + public void shouldSplitStringOnLines() { + StringLiner stringLiner = new StringLiner(); + + stringLiner.append("aa"); + String line = stringLiner.nextLine(); + Assert.assertNull(line); + + stringLiner.append("\r\n"); + line = stringLiner.nextLine(); + Assert.assertEquals("aa", line); + + stringLiner.append("bb\n"); + line = stringLiner.nextLine(); + Assert.assertEquals("bb", line); + + stringLiner.append("cc\r"); + line = stringLiner.nextLine(); + Assert.assertEquals("cc", line); + + stringLiner.append("dd"); + line = stringLiner.nextLine(); + Assert.assertNull(line); + + stringLiner.append("\n"); + line = stringLiner.nextLine(); + Assert.assertEquals("dd", line); + } +}