Failed to set a big decimal value in OData V4.

Solution Verified - Updated -

Issue

When add/update odata4 interface from dynamic VDB, if the value is big like "99999999.99", the validation error will be appeared:

10:03:39,213 WARN  [org.teiid.ODATA] (http-127.0.0.1:8080-1) TEIID16050 Unable to process odata request due to: Invalid value for property 'MAX_PAY'. with cause The literal '9.9999999999E8' has illegal content.: Invalid value: 9.9999999999E8 for property: MAX_PAY
    at org.apache.olingo.server.core.deserializer.json.ODataJsonDeserializer.readPrimitiveValue(ODataJsonDeserializer.java:611)
    at org.apache.olingo.server.core.deserializer.json.ODataJsonDeserializer.consumePropertySingleNode(ODataJsonDeserializer.java:488)
    at org.apache.olingo.server.core.deserializer.json.ODataJsonDeserializer.consumePropertyNode(ODataJsonDeserializer.java:474)
    at org.apache.olingo.server.core.deserializer.json.ODataJsonDeserializer.consumeEntityProperties(ODataJsonDeserializer.java:342)
    at org.apache.olingo.server.core.deserializer.json.ODataJsonDeserializer.consumeEntityNode(ODataJsonDeserializer.java:173)
    at org.apache.olingo.server.core.deserializer.json.ODataJsonDeserializer.entity(ODataJsonDeserializer.java:159)
    at org.apache.olingo.server.core.requests.DataRequest$EntityRequest.getEntityFromClient(DataRequest.java:367)
    at org.apache.olingo.server.core.requests.DataRequest$EntityRequest.execute(DataRequest.java:359)
    at org.apache.olingo.server.core.requests.DataRequest.execute(DataRequest.java:255)
    at org.apache.olingo.server.core.ServiceDispatcher.internalExecute(ServiceDispatcher.java:160)
    at org.apache.olingo.server.core.ServiceDispatcher.execute(ServiceDispatcher.java:98)
    at org.apache.olingo.server.core.OData4HttpHandler.process(OData4HttpHandler.java:66)
    at org.teiid.olingo.web.ODataServlet.service(ODataServlet.java:43) [teiid-olingo-8.12.13.6_3-redhat-1.jar:8.12.13.6_3-redhat-1]
    ...
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926) [jbossweb-7.5.17.Final-redhat-1.jar:7.5.17.Final-redhat-1]
    at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_151]
Caused by: org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException: The literal '9.9999999999E8' has illegal content.
    at org.apache.olingo.commons.core.edm.primitivetype.EdmDecimal.internalValueOfString(EdmDecimal.java:90)
    at org.apache.olingo.commons.core.edm.primitivetype.AbstractPrimitiveType.valueOfString(AbstractPrimitiveType.java:69)
    at org.apache.olingo.server.core.deserializer.json.ODataJsonDeserializer.readPrimitiveValue(ODataJsonDeserializer.java:606)

Environment

  • Red Hat JBoss Data Virtualization 6.3.x

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In
Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.