From 70544627cb89a61652d688c53984c68013ab985e Mon Sep 17 00:00:00 2001 From: Zachary Anker Date: Tue, 26 Jun 2018 20:27:24 -0700 Subject: When initializing a message, skip a field if value is nil (#3693) --- ruby/src/main/java/com/google/protobuf/jruby/RubyMessage.java | 2 ++ 1 file changed, 2 insertions(+) (limited to 'ruby/src') diff --git a/ruby/src/main/java/com/google/protobuf/jruby/RubyMessage.java b/ruby/src/main/java/com/google/protobuf/jruby/RubyMessage.java index 07558fbc..c3a0d81c 100644 --- a/ruby/src/main/java/com/google/protobuf/jruby/RubyMessage.java +++ b/ruby/src/main/java/com/google/protobuf/jruby/RubyMessage.java @@ -86,6 +86,8 @@ public class RubyMessage extends RubyObject { throw runtime.newTypeError("Expected string or symbols as hash keys in initialization map."); final Descriptors.FieldDescriptor fieldDescriptor = findField(context, key); + if (value.isNil()) return; + if (Utils.isMapEntry(fieldDescriptor)) { if (!(value instanceof RubyHash)) throw runtime.newArgumentError("Expected Hash object as initializer value for map field '" + key.asJavaString() + "'."); -- cgit v1.2.3