diff options
author | kenton@google.com <kenton@google.com@630680e5-0e50-0410-840e-4b1c322b438d> | 2009-12-22 19:54:06 +0000 |
---|---|---|
committer | kenton@google.com <kenton@google.com@630680e5-0e50-0410-840e-4b1c322b438d> | 2009-12-22 19:54:06 +0000 |
commit | 25cf9e3153643f7f36ffa06052fcdc3c22fd65e6 (patch) | |
tree | a45814f7fd3117eca0c151c9bf5d4f779b49d345 /java/src/main | |
parent | d6e84b3ed8ed5e0a3e16959abe23a876de13c314 (diff) | |
download | protobuf-25cf9e3153643f7f36ffa06052fcdc3c22fd65e6.tar.gz protobuf-25cf9e3153643f7f36ffa06052fcdc3c22fd65e6.tar.bz2 protobuf-25cf9e3153643f7f36ffa06052fcdc3c22fd65e6.zip |
getExtension() on an empty repeated field should return an empty list, not a singular default value.
Diffstat (limited to 'java/src/main')
-rw-r--r-- | java/src/main/java/com/google/protobuf/GeneratedMessage.java | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/java/src/main/java/com/google/protobuf/GeneratedMessage.java b/java/src/main/java/com/google/protobuf/GeneratedMessage.java index b5583ba3..47652e54 100644 --- a/java/src/main/java/com/google/protobuf/GeneratedMessage.java +++ b/java/src/main/java/com/google/protobuf/GeneratedMessage.java @@ -352,7 +352,10 @@ public abstract class GeneratedMessage extends AbstractMessage { FieldDescriptor descriptor = extension.getDescriptor(); final Object value = extensions.getField(descriptor); if (value == null) { - if (descriptor.getJavaType() == FieldDescriptor.JavaType.MESSAGE) { + if (descriptor.isRepeated()) { + return (Type) Collections.emptyList(); + } else if (descriptor.getJavaType() == + FieldDescriptor.JavaType.MESSAGE) { return (Type) extension.getMessageDefaultInstance(); } else { return (Type) extension.fromReflectionType( |