[ https://issues.apache.org/jira/browse/OLINGO-1480?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17646874#comment-17646874 ]
Senen de Diego commented on OLINGO-1480: ---------------------------------------- I don't think this is solved. I get the same exception with 0.000 (BigDecimal.valueOf(0L, 3)). That value has scale=3 and precision=1, which doesn't pass the condition in EdmDecimal.internalValueToString, because digits=3 and precision=1: {code:java} // code placeholder if ((precision == null || precision >= digits) && (bigDecimalValue.scale() <= (scale == null ? 0 : scale))) { result = bigDecimalValue.toPlainString(); } else { throw new EdmPrimitiveTypeException("The value '" + value + "' does not match the facets' constraints."); } {code} > Error serializing BigDecimal when there is no Edm > Property(EdmAssistedSerializer) > --------------------------------------------------------------------------------- > > Key: OLINGO-1480 > URL: https://issues.apache.org/jira/browse/OLINGO-1480 > Project: Olingo > Issue Type: Bug > Affects Versions: (Java) V4 4.7.1 > Reporter: Ramya Vasanth > Priority: Major > > For dynamic properties the library sets a default scale and precision value > in EdmAssistedSerializer. > When the database returns a BigDecimal (precision=0, scale=33): > 1.666666666666666666666666666666667 as result of a compute function($apply), > Olingo automatically translates it into EdmDecimal and when serializing in > EdmAssistedJsonSerializer there is a default precision of 40 and scale of 25 > set, so the check in EdmDecimal fails and throws "The value does not match > facet constraints". > > This can be fixed by changing the default scale value to scale value > specified in BigDecimal value. -- This message was sent by Atlassian Jira (v8.20.10#820010)