You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@olingo.apache.org by "Senen de Diego (Jira)" <ji...@apache.org> on 2022/12/14 00:07:00 UTC
[jira] [Commented] (OLINGO-1480) Error serializing BigDecimal when there is no Edm Property(EdmAssistedSerializer)
[ 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)