This is an automated email from the ASF dual-hosted git repository.
henrib pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-jexl.git
The following commit(s) were added to refs/heads/master by this push:
new f7f3d85 JEXL-305: Triming source may lead to exception being thrown
f7f3d85 is described below
commit f7f3d85cc7ee071f90553eba13ca37080944ce3a
Author: henrib <[email protected]>
AuthorDate: Fri Jun 14 18:10:55 2019 +0200
JEXL-305: Triming source may lead to exception being thrown
---
src/main/java/org/apache/commons/jexl3/internal/Engine.java | 4 ++--
src/test/java/org/apache/commons/jexl3/ScriptTest.java | 10 ++++++++++
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/apache/commons/jexl3/internal/Engine.java
b/src/main/java/org/apache/commons/jexl3/internal/Engine.java
index d731140..b8c77a8 100644
--- a/src/main/java/org/apache/commons/jexl3/internal/Engine.java
+++ b/src/main/java/org/apache/commons/jexl3/internal/Engine.java
@@ -738,8 +738,8 @@ public class Engine extends JexlEngine {
while (start < end &&
Character.isSpaceChar(str.charAt(start))) {
++start;
}
- // trim ending spaces
- while (end > 0 && Character.isSpaceChar(str.charAt(end - 1))) {
+ // trim ending spaces; end is > 0 since start >= 0
+ while (end > start && Character.isSpaceChar(str.charAt(end -
1))) {
--end;
}
return str.subSequence(start, end).toString();
diff --git a/src/test/java/org/apache/commons/jexl3/ScriptTest.java
b/src/test/java/org/apache/commons/jexl3/ScriptTest.java
index 4ee9233..33eb75a 100644
--- a/src/test/java/org/apache/commons/jexl3/ScriptTest.java
+++ b/src/test/java/org/apache/commons/jexl3/ScriptTest.java
@@ -53,6 +53,16 @@ public class ScriptTest extends JexlTestCase {
}
/**
+ * Test creating a script from spaces.
+ */
+ @Test
+ public void testSpacesScript() throws Exception {
+ String code = " ";
+ JexlScript s = JEXL.createScript(code);
+ Assert.assertTrue(s != null);
+ }
+
+ /**
* Test creating a script from a string.
*/
@Test