Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(129)

Unified Diff: third_party/protobuf/java/core/src/main/java/com/google/protobuf/TextFormat.java

Issue 2590803003: Revert "third_party/protobuf: Update to HEAD (83d681ee2c)" (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/protobuf/java/core/src/main/java/com/google/protobuf/TextFormat.java
diff --git a/third_party/protobuf/java/core/src/main/java/com/google/protobuf/TextFormat.java b/third_party/protobuf/java/core/src/main/java/com/google/protobuf/TextFormat.java
index 49708242156ca5ded0314f0ef0845c46b46cd694..c1c328fc7d8d6ab01fa5521c73e3814ec9c39692 100644
--- a/third_party/protobuf/java/core/src/main/java/com/google/protobuf/TextFormat.java
+++ b/third_party/protobuf/java/core/src/main/java/com/google/protobuf/TextFormat.java
@@ -661,14 +661,6 @@ public final class TextFormat {
nextToken();
}
- int getPreviousLine() {
- return previousLine;
- }
-
- int getPreviousColumn() {
- return previousColumn;
- }
-
int getLine() {
return line;
}
@@ -1382,28 +1374,6 @@ public final class TextFormat {
return text;
}
- // Check both unknown fields and unknown extensions and log warming messages
- // or throw exceptions according to the flag.
- private void checkUnknownFields(final List<String> unknownFields)
- throws ParseException {
- if (unknownFields.isEmpty()) {
- return;
- }
-
- StringBuilder msg = new StringBuilder("Input contains unknown fields and/or extensions:");
- for (String field : unknownFields) {
- msg.append('\n').append(field);
- }
-
- if (allowUnknownFields) {
- logger.warning(msg.toString());
- } else {
- String[] lineColumn = unknownFields.get(0).split(":");
- throw new ParseException(Integer.valueOf(lineColumn[0]),
- Integer.valueOf(lineColumn[1]), msg.toString());
- }
- }
-
/**
* Parse a text-format message from {@code input} and merge the contents
* into {@code builder}. Extensions will be recognized if they are
@@ -1417,13 +1387,9 @@ public final class TextFormat {
MessageReflection.BuilderAdapter target =
new MessageReflection.BuilderAdapter(builder);
- List<String> unknownFields = new ArrayList<String>();
-
while (!tokenizer.atEnd()) {
- mergeField(tokenizer, extensionRegistry, target, unknownFields);
+ mergeField(tokenizer, extensionRegistry, target);
}
-
- checkUnknownFields(unknownFields);
}
@@ -1433,11 +1399,9 @@ public final class TextFormat {
*/
private void mergeField(final Tokenizer tokenizer,
final ExtensionRegistry extensionRegistry,
- final MessageReflection.MergeTarget target,
- List<String> unknownFields)
+ final MessageReflection.MergeTarget target)
throws ParseException {
- mergeField(tokenizer, extensionRegistry, target, parseInfoTreeBuilder,
- unknownFields);
+ mergeField(tokenizer, extensionRegistry, target, parseInfoTreeBuilder);
}
/**
@@ -1447,8 +1411,7 @@ public final class TextFormat {
private void mergeField(final Tokenizer tokenizer,
final ExtensionRegistry extensionRegistry,
final MessageReflection.MergeTarget target,
- TextFormatParseInfoTree.Builder parseTreeBuilder,
- List<String> unknownFields)
+ TextFormatParseInfoTree.Builder parseTreeBuilder)
throws ParseException {
FieldDescriptor field = null;
int startLine = tokenizer.getLine();
@@ -1469,9 +1432,13 @@ public final class TextFormat {
extensionRegistry, name.toString());
if (extension == null) {
- unknownFields.add((tokenizer.getPreviousLine() + 1) + ":" +
- (tokenizer.getPreviousColumn() + 1) + ":\t" +
- type.getFullName() + ".[" + name + "]");
+ if (!allowUnknownFields) {
+ throw tokenizer.parseExceptionPreviousToken(
+ "Extension \"" + name + "\" not found in the ExtensionRegistry.");
+ } else {
+ logger.warning(
+ "Extension \"" + name + "\" not found in the ExtensionRegistry.");
+ }
} else {
if (extension.descriptor.getContainingType() != type) {
throw tokenizer.parseExceptionPreviousToken(
@@ -1506,9 +1473,16 @@ public final class TextFormat {
}
if (field == null) {
- unknownFields.add((tokenizer.getPreviousLine() + 1) + ":" +
- (tokenizer.getPreviousColumn() + 1) + ":\t" +
- type.getFullName() + "." + name);
+ if (!allowUnknownFields) {
+ throw tokenizer.unknownFieldParseExceptionPreviousToken(
+ name,
+ "Message type \"" + type.getFullName()
+ + "\" has no field named \"" + name + "\".");
+ } else {
+ logger.warning(
+ "Message type \"" + type.getFullName()
+ + "\" has no field named \"" + name + "\".");
+ }
}
}
@@ -1537,15 +1511,15 @@ public final class TextFormat {
TextFormatParseInfoTree.Builder childParseTreeBuilder =
parseTreeBuilder.getBuilderForSubMessageField(field);
consumeFieldValues(tokenizer, extensionRegistry, target, field, extension,
- childParseTreeBuilder, unknownFields);
+ childParseTreeBuilder);
} else {
consumeFieldValues(tokenizer, extensionRegistry, target, field, extension,
- parseTreeBuilder, unknownFields);
+ parseTreeBuilder);
}
} else {
tokenizer.consume(":"); // required
- consumeFieldValues(tokenizer, extensionRegistry, target, field,
- extension, parseTreeBuilder, unknownFields);
+ consumeFieldValues(
+ tokenizer, extensionRegistry, target, field, extension, parseTreeBuilder);
}
if (parseTreeBuilder != null) {
@@ -1570,32 +1544,23 @@ public final class TextFormat {
final MessageReflection.MergeTarget target,
final FieldDescriptor field,
final ExtensionRegistry.ExtensionInfo extension,
- final TextFormatParseInfoTree.Builder parseTreeBuilder,
- List<String> unknownFields)
+ final TextFormatParseInfoTree.Builder parseTreeBuilder)
throws ParseException {
// Support specifying repeated field values as a comma-separated list.
// Ex."foo: [1, 2, 3]"
if (field.isRepeated() && tokenizer.tryConsume("[")) {
- if (!tokenizer.tryConsume("]")) { // Allow "foo: []" to be treated as empty.
- while (true) {
- consumeFieldValue(
- tokenizer,
- extensionRegistry,
- target,
- field,
- extension,
- parseTreeBuilder,
- unknownFields);
- if (tokenizer.tryConsume("]")) {
- // End of list.
- break;
- }
- tokenizer.consume(",");
+ while (true) {
+ consumeFieldValue(tokenizer, extensionRegistry, target, field, extension,
+ parseTreeBuilder);
+ if (tokenizer.tryConsume("]")) {
+ // End of list.
+ break;
}
+ tokenizer.consume(",");
}
} else {
- consumeFieldValue(tokenizer, extensionRegistry, target, field,
- extension, parseTreeBuilder, unknownFields);
+ consumeFieldValue(
+ tokenizer, extensionRegistry, target, field, extension, parseTreeBuilder);
}
}
@@ -1609,8 +1574,7 @@ public final class TextFormat {
final MessageReflection.MergeTarget target,
final FieldDescriptor field,
final ExtensionRegistry.ExtensionInfo extension,
- final TextFormatParseInfoTree.Builder parseTreeBuilder,
- List<String> unknownFields)
+ final TextFormatParseInfoTree.Builder parseTreeBuilder)
throws ParseException {
Object value = null;
@@ -1632,8 +1596,7 @@ public final class TextFormat {
throw tokenizer.parseException(
"Expected \"" + endToken + "\".");
}
- mergeField(tokenizer, extensionRegistry, subField, parseTreeBuilder,
- unknownFields);
+ mergeField(tokenizer, extensionRegistry, subField, parseTreeBuilder);
}
value = subField.finish();

Powered by Google App Engine
This is Rietveld 408576698