Skip to content

Commit ad54883

Browse files
Handle default value scenario for rollout percent field
1 parent 0d1aeef commit ad54883

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

‎src/main/java/com/google/firebase/remoteconfig/ParameterValue.java‎

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,15 @@ static ParameterValue fromParameterValueResponse(
9999
}
100100
if (parameterValueResponse.getRolloutValue() != null) {
101101
RolloutValueResponse rv = parameterValueResponse.getRolloutValue();
102-
return ParameterValue.ofRollout(rv.getRolloutId(), rv.getValue(), rv.getPercent());
102+
// Protobuf serialization does not set values for fields on the wire when
103+
// they are equal to the default value for the field type. When deserializing,
104+
// can appear as the value not being set. Explicitly handle default value for
105+
// the percent field since 0 is a valid value.
106+
double percent = 0;
107+
if (rv.getPercent() != null) {
108+
percent = rv.getPercent();
109+
}
110+
return ParameterValue.ofRollout(rv.getRolloutId(), rv.getValue(), percent);
103111
}
104112
if (parameterValueResponse.getPersonalizationValue() != null) {
105113
PersonalizationValueResponse pv = parameterValueResponse.getPersonalizationValue();

0 commit comments

Comments
 (0)