Repository: olingo-odata4 Updated Branches: refs/heads/master 9dfe49951 -> 1012bcb24
OLINGO-1150: allowing support to read decimal values presented in the exponential form Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/1012bcb2 Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/1012bcb2 Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/1012bcb2 Branch: refs/heads/master Commit: 1012bcb248411f13e3346bce67b13d9e117440cc Parents: 9dfe499 Author: Ramesh Reddy <[email protected]> Authored: Fri Jan 19 11:03:46 2018 -0600 Committer: Ramesh Reddy <[email protected]> Committed: Fri Jan 19 11:03:46 2018 -0600 ---------------------------------------------------------------------- .../olingo/commons/core/edm/primitivetype/EdmDecimal.java | 3 ++- .../olingo/commons/core/edm/primitivetype/EdmDecimalTest.java | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/1012bcb2/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDecimal.java ---------------------------------------------------------------------- diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDecimal.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDecimal.java index 8044273..de0277a 100644 --- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDecimal.java +++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDecimal.java @@ -31,7 +31,8 @@ import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException; */ public final class EdmDecimal extends SingletonPrimitiveType { - private static final Pattern PATTERN = Pattern.compile("(?:\\+|-)?(?:0*(\\p{Digit}+?))(?:\\.(\\p{Digit}+?)0*)?"); + private static final Pattern PATTERN = Pattern.compile( + "(?:\\+|-)?(?:0*(\\p{Digit}+?))(?:\\.(\\p{Digit}+?)0*)?((?:E|e)(?:\\+|-)?\\p{Digit}+)?"); private static final EdmDecimal INSTANCE = new EdmDecimal(); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/1012bcb2/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDecimalTest.java ---------------------------------------------------------------------- diff --git a/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDecimalTest.java b/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDecimalTest.java index 48bbb25..4587680 100644 --- a/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDecimalTest.java +++ b/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/primitivetype/EdmDecimalTest.java @@ -97,7 +97,9 @@ public class EdmDecimalTest extends PrimitiveTypeBaseTest { assertEquals(Double.valueOf(0.5), instance.valueOfString("0.5", null, null, 1, 1, null, Double.class)); assertEquals(Float.valueOf(0.5F), instance.valueOfString("0.5", null, null, null, 1, null, Float.class)); assertEquals(new BigDecimal("12.3"), instance.valueOfString("12.3", null, null, 3, 1, null, BigDecimal.class)); - + assertEquals(new BigDecimal("31991163"), instance.valueOfString("3.1991163E7", null, null, 8, 7, + null, BigDecimal.class)); + expectFacetsErrorInValueOfString(instance, "0.5", null, null, null, null, null); expectFacetsErrorInValueOfString(instance, "-1234", null, null, 2, null, null); expectFacetsErrorInValueOfString(instance, "1234", null, null, 3, null, null); @@ -107,7 +109,6 @@ public class EdmDecimalTest extends PrimitiveTypeBaseTest { expectFacetsErrorInValueOfString(instance, "0.00390625", null, null, 5, null, null); expectFacetsErrorInValueOfString(instance, "0.00390625", null, null, null, 7, null); - expectContentErrorInValueOfString(instance, "-1E2"); expectContentErrorInValueOfString(instance, "1."); expectContentErrorInValueOfString(instance, ".1"); expectContentErrorInValueOfString(instance, "1.0.1");
