You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@olingo.apache.org by "Morten Basboll (Jira)" <ji...@apache.org> on 2022/02/14 15:58:00 UTC

[jira] [Commented] (OLINGO-1549) cannot create amount smaller than 0.10

    [ https://issues.apache.org/jira/browse/OLINGO-1549?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17492070#comment-17492070 ] 

Morten Basboll commented on OLINGO-1549:
----------------------------------------

I am experiencing the same issue in V4 4.9.0.  The error is thrown from EdmDecimal.java at line 249.  Here is the code snippet:

      final int digits = bigDecimalValue.scale() >= 0
          ? Math.max(bigDecimalValue.precision(), bigDecimalValue.scale())
              : bigDecimalValue.precision() - bigDecimalValue.scale();
          if ((precision == null || precision >= digits) && (bigDecimalValue.scale() <= (scale == null ? 0 : scale))) {
            result = bigDecimalValue.toPlainString();
          } else {
{color:#ffab00}            throw new EdmPrimitiveTypeException("The value '" + value + "' does not match the facets' constraints.");{color}
          }

I don't understand the logic here.  Any positive value less the 0.1 will always have a precision that is less than the total number of digits when the leading zeros after the decimal are included.  Why should that throw an exception?

 

 

> cannot create amount smaller than 0.10
> --------------------------------------
>
>                 Key: OLINGO-1549
>                 URL: https://issues.apache.org/jira/browse/OLINGO-1549
>             Project: Olingo
>          Issue Type: Question
>          Components: odata4-client
>    Affects Versions: (Java) V4 4.8.0
>            Reporter: wim wintmolders
>            Priority: Major
>
> The following throws an exception 
> {code:java}
> new ClientObjectFactoryImpl().newPrimitiveValueBuilder().buildDecimal(new BigDecimal("0.04")).toString();
> {code}
> {noformat}
> java.lang.IllegalArgumentException: org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException: The value '0.04' does not match the facets' constraints.
> {noformat}
> Not sure if I'm doing anything wrong, but any number above 0.09 does work.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)