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 <hen...@apache.org>
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

Reply via email to