Skip to content

Commit 684a3de

Browse files
zhangskzcopybara-github
authored andcommitted
Migrate away from examining the syntax of a proto file via reflection.
PiperOrigin-RevId: 511792205
1 parent fa82155 commit 684a3de

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

java/core/src/main/java/com/google/protobuf/DynamicMessage.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -535,11 +535,10 @@ public Builder setField(FieldDescriptor field, Object value) {
535535
fields.clearField(oldField);
536536
}
537537
oneofCases[index] = field;
538-
} else if (field.getFile().getSyntax() == Descriptors.FileDescriptor.Syntax.PROTO3) {
539-
if (!field.isRepeated()
540-
&& field.getJavaType() != FieldDescriptor.JavaType.MESSAGE
541-
&& value.equals(field.getDefaultValue())) {
542-
// In proto3, setting a field to its default value is equivalent to clearing the field.
538+
} else if (!field.hasPresence()) {
539+
if (!field.isRepeated() && value.equals(field.getDefaultValue())) {
540+
// Setting a field without presence to its default value is equivalent to clearing the
541+
// field.
543542
fields.clearField(field);
544543
return this;
545544
}

0 commit comments

Comments
 (0)