You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by co...@apache.org on 2019/09/26 11:40:39 UTC
[cxf] branch 3.3.x-fixes updated: CXF-8123 - FIQL parser throws a
StringIndexOutOfBoundsException on a wildcard character
This is an automated email from the ASF dual-hosted git repository.
coheigea pushed a commit to branch 3.3.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/3.3.x-fixes by this push:
new 13772a3 CXF-8123 - FIQL parser throws a StringIndexOutOfBoundsException on a wildcard character
13772a3 is described below
commit 13772a327098239e468c6b04b24afc92afd4cebd
Author: Colm O hEigeartaigh <co...@apache.org>
AuthorDate: Thu Sep 26 12:38:59 2019 +0100
CXF-8123 - FIQL parser throws a StringIndexOutOfBoundsException on a wildcard character
(cherry picked from commit d6eafa6e6dbd47f220c6fc7835e025a11a67080d)
---
.../cxf/jaxrs/ext/search/PrimitiveSearchCondition.java | 3 +++
.../org/apache/cxf/jaxrs/ext/search/fiql/FiqlParserTest.java | 12 ++++++++++++
2 files changed, 15 insertions(+)
diff --git a/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/PrimitiveSearchCondition.java b/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/PrimitiveSearchCondition.java
index 9edc99c..d45e9b5 100644
--- a/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/PrimitiveSearchCondition.java
+++ b/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/PrimitiveSearchCondition.java
@@ -191,6 +191,9 @@ public class PrimitiveSearchCondition<T> implements SearchCondition<T> {
if (rval.charAt(0) == '*') {
starts = true;
rval = rval.substring(1);
+ if (rval.isEmpty()) {
+ throw new SearchParseException("A single wildcard is not a valid search condition");
+ }
}
if (rval.charAt(rval.length() - 1) == '*') {
ends = true;
diff --git a/rt/rs/extensions/search/src/test/java/org/apache/cxf/jaxrs/ext/search/fiql/FiqlParserTest.java b/rt/rs/extensions/search/src/test/java/org/apache/cxf/jaxrs/ext/search/fiql/FiqlParserTest.java
index 45a17ba..c3b88ef 100644
--- a/rt/rs/extensions/search/src/test/java/org/apache/cxf/jaxrs/ext/search/fiql/FiqlParserTest.java
+++ b/rt/rs/extensions/search/src/test/java/org/apache/cxf/jaxrs/ext/search/fiql/FiqlParserTest.java
@@ -41,6 +41,7 @@ import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
public class FiqlParserTest {
private FiqlParser<Condition> parser = new FiqlParser<>(Condition.class);
@@ -316,6 +317,17 @@ public class FiqlParserTest {
assertEquals("myitem", job.getTasks().get(0).getItems().get(0).getItemName());
}
+ @Test
+ public void testWildcard() throws SearchParseException {
+ SearchCondition<Condition> filter = parser.parse("name==*");
+ try {
+ filter.isMet(new Condition("foobaz", 0, null));
+ fail("Failure expected on an invalid search condition");
+ } catch (SearchParseException ex) {
+ // expected
+ }
+ }
+
@Ignore
public static class Condition {
private String name;