This is an automated email from the ASF dual-hosted git repository. sewen pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/flink.git
commit 6624562982c9d57bebba8cb4b574b8ed28640a0d Author: liyafan82 <fan_li...@foxmail.com> AuthorDate: Mon Jul 1 18:59:40 2019 +0800 [FLINK-13043] [Library / CEP] Fix the bug of parsing Dewey number from string This closes #8936 --- .../src/main/java/org/apache/flink/cep/nfa/DeweyNumber.java | 6 ++++-- .../src/test/java/org/apache/flink/cep/nfa/DeweyNumberTest.java | 5 +++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/flink-libraries/flink-cep/src/main/java/org/apache/flink/cep/nfa/DeweyNumber.java b/flink-libraries/flink-cep/src/main/java/org/apache/flink/cep/nfa/DeweyNumber.java index 6141bf2..de41ef1 100644 --- a/flink-libraries/flink-cep/src/main/java/org/apache/flink/cep/nfa/DeweyNumber.java +++ b/flink-libraries/flink-cep/src/main/java/org/apache/flink/cep/nfa/DeweyNumber.java @@ -175,9 +175,9 @@ public class DeweyNumber implements Serializable { public static DeweyNumber fromString(final String deweyNumberString) { String[] splits = deweyNumberString.split("\\."); - if (splits.length == 0) { + if (splits.length == 1) { return new DeweyNumber(Integer.parseInt(deweyNumberString)); - } else { + } else if (splits.length > 0) { int[] deweyNumber = new int[splits.length]; for (int i = 0; i < splits.length; i++) { @@ -185,6 +185,8 @@ public class DeweyNumber implements Serializable { } return new DeweyNumber(deweyNumber); + } else { + throw new IllegalArgumentException("Failed to parse " + deweyNumberString + " as a Dewey number"); } } diff --git a/flink-libraries/flink-cep/src/test/java/org/apache/flink/cep/nfa/DeweyNumberTest.java b/flink-libraries/flink-cep/src/test/java/org/apache/flink/cep/nfa/DeweyNumberTest.java index e28e77d..bf07294 100644 --- a/flink-libraries/flink-cep/src/test/java/org/apache/flink/cep/nfa/DeweyNumberTest.java +++ b/flink-libraries/flink-cep/src/test/java/org/apache/flink/cep/nfa/DeweyNumberTest.java @@ -55,4 +55,9 @@ public class DeweyNumberTest extends TestLogger { assertFalse(startAddStage.isCompatibleWith(increaseAddStage)); assertFalse(startAddStageIncreased.isCompatibleWith(startAddStageIncreasedAddStage)); } + + @Test(expected = IllegalArgumentException.class) + public void testZeroSplitsDeweyNumber() { + DeweyNumber.fromString("."); + } }