You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by he...@apache.org on 2020/01/28 15:44:16 UTC
[commons-jexl] branch master updated: JEXL-325: fixed potential
concurrent execution pb Task #JEXL-325 - Potential race-condition in
NumberParser.toString()
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 c591d00 JEXL-325: fixed potential concurrent execution pb Task #JEXL-325 - Potential race-condition in NumberParser.toString()
c591d00 is described below
commit c591d00af08b1bff8642e047c12e5c10c76428f3
Author: henrib <he...@apache.org>
AuthorDate: Tue Jan 28 16:43:39 2020 +0100
JEXL-325: fixed potential concurrent execution pb
Task #JEXL-325 - Potential race-condition in NumberParser.toString()
---
RELEASE-NOTES.txt | 1 +
src/main/java/org/apache/commons/jexl3/parser/NumberParser.java | 6 +++---
src/site/xdoc/changes.xml | 3 +++
3 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index fbdc74e..c329e77 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -74,6 +74,7 @@ New Features in 3.2:
Bugs Fixed in 3.2:
==================
+* JEXL-325: Potential race-condition in NumberParser.toString()
* JEXL-324: JexlEngine.createExpression("new()").getParsedText() throws NPE
* JEXL-322: JXLT String literals cannot contain curly brace
* JEXL-321: Empty do-while loop is broken
diff --git a/src/main/java/org/apache/commons/jexl3/parser/NumberParser.java b/src/main/java/org/apache/commons/jexl3/parser/NumberParser.java
index 265a307..5a14188 100644
--- a/src/main/java/org/apache/commons/jexl3/parser/NumberParser.java
+++ b/src/main/java/org/apache/commons/jexl3/parser/NumberParser.java
@@ -36,15 +36,15 @@ public final class NumberParser {
return "NaN";
}
if (BigDecimal.class.equals(clazz)) {
- return BIGDF.format(literal);
+ synchronized (BIGDF) {
+ return BIGDF.format(literal);
+ }
}
StringBuilder strb = new StringBuilder(literal.toString());
if (Float.class.equals(clazz)) {
strb.append('f');
} else if (Double.class.equals(clazz)) {
strb.append('d');
- } else if (BigDecimal.class.equals(clazz)) {
- strb.append('b');
} else if (BigInteger.class.equals(clazz)) {
strb.append('h');
} else if (Long.class.equals(clazz)) {
diff --git a/src/site/xdoc/changes.xml b/src/site/xdoc/changes.xml
index c85438c..01e461a 100644
--- a/src/site/xdoc/changes.xml
+++ b/src/site/xdoc/changes.xml
@@ -26,6 +26,9 @@
</properties>
<body>
<release version="3.2" date="unreleased">
+ <action dev="Dmitri Blinov" type="fix" issue="JEXL-325" due-to="Dmitri Blinov">
+ Potential race-condition in NumberParser.toString()
+ </action>
<action dev="henrib" type="fix" issue="JEXL-324" due-to="David Costanzo">
JexlEngine.createExpression("new()").getParsedText() throws NPE
</action>