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");

Reply via email to