Skip to content

Instantly share code, notes, and snippets.

@mikebern
Created June 10, 2014 23:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mikebern/825812f0de95a2f03dd5 to your computer and use it in GitHub Desktop.
Save mikebern/825812f0de95a2f03dd5 to your computer and use it in GitHub Desktop.
EB Patch
diff --git hive/src/main/java/com/twitter/elephantbird/hive/serde/ProtobufStructObjectInspector.java hive/src/main/java/com/twitter/elephantbird/hive/serde/ProtobufStructObjectInspector.java
index 9649f0d..fd9a65d 100644
--- hive/src/main/java/com/twitter/elephantbird/hive/serde/ProtobufStructObjectInspector.java
+++ hive/src/main/java/com/twitter/elephantbird/hive/serde/ProtobufStructObjectInspector.java
@@ -160,7 +160,7 @@ public final class ProtobufStructObjectInspector extends SettableStructObjectIns
java.util.List values = (java.util.List) fieldValue;
int i = 0;
for (Object value : values) {
- builder.setRepeatedField(descriptor.findFieldByName(field.getFieldName()), i++, value);
+ builder.addRepeatedField(descriptor.findFieldByName(field.getFieldName()), value);
}
}
} else {
@@ -172,7 +172,7 @@ public final class ProtobufStructObjectInspector extends SettableStructObjectIns
int i = 0;
for (Object value : values) {
Message.Builder subFieldBuilder = (Message.Builder) value;
- builder.setRepeatedField(descriptor.findFieldByName(field.getFieldName()), i++, subFieldBuilder.build());
+ builder.addRepeatedField(descriptor.findFieldByName(field.getFieldName()), subFieldBuilder.build());
}
}
}
@@ -190,7 +190,12 @@ public final class ProtobufStructObjectInspector extends SettableStructObjectIns
if (data == null) {
return null;
}
- Message.Builder m = ((Message.Builder) data);
+ Message.Builder m = null;
+ if (data instanceof Message) {
+ m = ((Message) data).toBuilder();
+ } else {
+ m = ((Message.Builder) data);
+ }
ProtobufStructField psf = (ProtobufStructField) structField;
FieldDescriptor fieldDescriptor = psf.getFieldDescriptor();
@@ -227,7 +232,15 @@ public final class ProtobufStructObjectInspector extends SettableStructObjectIns
return null;
}
List<Object> result = Lists.newArrayList();
- Message.Builder m = (Message.Builder) data;
+ Message.Builder m = null;
+
+ if (data instanceof Message) {
+ m = ((Message) data).toBuilder();
+ } else {
+ m = ((Message.Builder) data);
+ }
+
+
for (FieldDescriptor fd : descriptor.getFields()) {
result.add(m.getField(fd));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment