aboutsummaryrefslogtreecommitdiff
path: root/java/src/main
diff options
context:
space:
mode:
authorkenton@google.com <kenton@google.com@630680e5-0e50-0410-840e-4b1c322b438d>2009-12-22 19:54:06 +0000
committerkenton@google.com <kenton@google.com@630680e5-0e50-0410-840e-4b1c322b438d>2009-12-22 19:54:06 +0000
commit25cf9e3153643f7f36ffa06052fcdc3c22fd65e6 (patch)
treea45814f7fd3117eca0c151c9bf5d4f779b49d345 /java/src/main
parentd6e84b3ed8ed5e0a3e16959abe23a876de13c314 (diff)
downloadprotobuf-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.java5
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(