diff options
author | Zachary Anker <zach.anker@gmail.com> | 2018-06-26 20:27:24 -0700 |
---|---|---|
committer | Paul Yang <TeBoring@users.noreply.github.com> | 2018-06-26 20:27:24 -0700 |
commit | 70544627cb89a61652d688c53984c68013ab985e (patch) | |
tree | b1bd65a874acd871126e8807c64c3414a1ddce40 /ruby/src | |
parent | 74f8e24232e0d67ab79419130b5bf3a5a875593d (diff) | |
download | protobuf-70544627cb89a61652d688c53984c68013ab985e.tar.gz protobuf-70544627cb89a61652d688c53984c68013ab985e.tar.bz2 protobuf-70544627cb89a61652d688c53984c68013ab985e.zip |
When initializing a message, skip a field if value is nil (#3693)
Diffstat (limited to 'ruby/src')
-rw-r--r-- | ruby/src/main/java/com/google/protobuf/jruby/RubyMessage.java | 2 |
1 files changed, 2 insertions, 0 deletions
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() + "'."); |