Robert Munteanu created SLING-5914:
--------------------------------------
Summary: Provisioning model does not correctly handle
floating-point configuration values
Key: SLING-5914
URL: https://issues.apache.org/jira/browse/SLING-5914
Project: Sling
Issue Type: Bug
Reporter: Robert Munteanu
Fix For: Sling Provisioning Model 1.4.6
The provisioning model specifies that floating-point values are encoded in the
following format:
- {{D"1.0"}} for doubles
- {{F"1.0"}} for floats
However, the ConfigAdmin has a different idea about how these values should be
stored:
{code:java}
case TOKEN_SIMPLE_FLOAT:
case TOKEN_PRIMITIVE_FLOAT:
int fBits = Integer.parseInt( readQuoted( pr ) );
return new Float( Float.intBitsToFloat( fBits ) );
case TOKEN_SIMPLE_DOUBLE:
case TOKEN_PRIMITIVE_DOUBLE:
long dBits = Long.parseLong( readQuoted( pr ) );
return new Double( Double.longBitsToDouble( dBits ) );
{code}
I assume that this is done to preserve precision when reading/writing values.
The provisioning model should be updated to mediate between the user-supplied
values and the configuration admin format.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)