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, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content