[4.10.0] - 2019-12-13
Added:
- Method overloads in
ArrayBuilder
/ObjectBuilder
to allow easily adding values as booleans, strings, etc. rather than converting them toLDValue
first.
Changed:
- The SDK now generates fewer ephemeral objects on the heap from flag evaluations, by reusing
EvaluationReason
instances that have the same properties.
Fixed:
- In rare circumstances (depending on the exact data in the flag configuration, the flag's salt value, and the user properties), a percentage rollout could fail and return a default value, logging the error "Data inconsistency in feature flag ... variation/rollout object with no variation or rollout". This would happen if the user's hashed value fell exactly at the end of the last "bucket" (the last variation defined in the rollout). This has been fixed so that the user will get the last variation.
Deprecated:
- Deprecated
LDCountryCode
,LDUser.Builder.country(LDCountryCode)
, andLDUser.Builder.privateCountry(LDCountryCode)
.LDCountryCode
will be removed in the next major release, for setting thecountry
user property, applications should useLDUser.Builder.country(String)
andLDUser.Builder.privateCountry(String)
instead. SegmentRule
is an internal implementation class that was accidentally made public.NullUpdateProcessor
should not be referenced directly and will be non-public in the future; use the factory methods inComponents
instead.