[jira] [Created] (JEXL-416) Null-valued pragma throws NPE in 3.3

2023-11-22 Thread William Price (Jira)
William Price created JEXL-416:
--

 Summary: Null-valued pragma throws NPE in 3.3
 Key: JEXL-416
 URL: https://issues.apache.org/jira/browse/JEXL-416
 Project: Commons JEXL
  Issue Type: Bug
Affects Versions: 3.3
 Environment: JEXL 3.3
Java 21 (21+35) Red Hat, Inc.
Linux 5.15.133.1-microsoft-standard-WSL2 (amd64)
Reporter: William Price


Version 3.2.1 seemed to allow {{null}} as a value for pragmas, but version 3.3 
throws NPE.  I'm not necessarily advocating for null pragma values, but it's a 
behavior regression due to the use of {{{}TreeMap::merge{}}}. Even if 
disallowing nulls was desired, it should be a JexlException not NPE.

Passes on 3.2.1:
{code:java}
var script = engine.createScript("#pragma myNull null\n");
var pragmas = script.getPragmas();
assertTrue(pragmas.containsKey("myNull"), "pragma key present?");
assertNull(pragmas.get("myNull"), "expected null value"); {code}
Behavior on 3.3:
{code:java}
assertThrows(
NullPointerException.class,
() -> engine.createScript("#pragma myNull null\n"));
{code}
{noformat}
java.lang.NullPointerException
at java.base/java.util.Objects.requireNonNull(Objects.java:233)
at java.base/java.util.TreeMap.merge(TreeMap.java:743)
at 
org.apache.commons.jexl3.parser.JexlParser.declarePragma(JexlParser.java:557)
at org.apache.commons.jexl3.parser.Parser.Pragma(Parser.java:1246)
at org.apache.commons.jexl3.parser.Parser.JexlScript(Parser.java:63)
at org.apache.commons.jexl3.parser.Parser.parse(Parser.java:25)
at org.apache.commons.jexl3.internal.Engine.parse(Engine.java:1009)
at 
org.apache.commons.jexl3.internal.Engine.createScript(Engine.java:617)
at org.apache.commons.jexl3.internal.Engine.createScript(Engine.java:69)
at org.apache.commons.jexl3.JexlEngine.createScript(JexlEngine.java:375)
{noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (JEXL-354) #pragma does not handle negative integer or real literals

2021-11-25 Thread William Price (Jira)
William Price created JEXL-354:
--

 Summary: #pragma does not handle negative integer or real literals
 Key: JEXL-354
 URL: https://issues.apache.org/jira/browse/JEXL-354
 Project: Commons JEXL
  Issue Type: Bug
Affects Versions: 3.2.1
Reporter: William Price


Using 3.2.1, I get a parse exception on the simple JEXL script:

{code}
#pragma myInt -1
{code}

Throws:

{noformat}
org.apache.commons.jexl3.JexlException$Parsing: 
com.example.Test.testMethod:54@1:15 parsing error in '-'
at 
app//org.apache.commons.jexl3.JexlEngine.createScript(JexlEngine.java:375)
{noformat}

And similar, also for negative real literals such as {{-1.0}}.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)