Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP2:Update
protobuf.36265
protobuf-763c3588740b97e8e80b1b1a1a2dc4f4176471...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File protobuf-763c3588740b97e8e80b1b1a1a2dc4f417647133.patch of Package protobuf.36265
From 763c3588740b97e8e80b1b1a1a2dc4f417647133 Mon Sep 17 00:00:00 2001 From: Paul Yang <TeBoring@users.noreply.github.com> Date: Thu, 12 Sep 2019 11:03:27 -0700 Subject: [PATCH] Down Integrate Internal Changes (#6634) * Down integrate to GitHub * Remove unintentional double assign * Change ByteCountInt64 to int64_t * Revert changes in binary_conformance_test.cc * Revert unnecessary changes --- java/core/src/main/java/com/google/protobuf/AbstractMessage.java | 2 - java/core/src/main/java/com/google/protobuf/ByteString.java | 17 ++++++++ java/core/src/main/java/com/google/protobuf/FieldSet.java | 4 +- java/core/src/main/java/com/google/protobuf/GeneratedMessageLite.java | 4 +- java/core/src/main/java/com/google/protobuf/GeneratedMessageV3.java | 10 ++--- java/core/src/main/java/com/google/protobuf/MapEntry.java | 2 - java/core/src/main/java/com/google/protobuf/MapFieldLite.java | 2 - java/core/src/test/java/com/google/protobuf/ByteStringTest.java | 19 ++++++++++ java/util/src/main/java/com/google/protobuf/util/JsonFormat.java | 8 ++++ java/util/src/test/java/com/google/protobuf/util/JsonFormatTest.java | 16 ++++++++ 10 files changed, 71 insertions(+), 13 deletions(-) --- a/java/core/src/main/java/com/google/protobuf/AbstractMessage.java +++ b/java/core/src/main/java/com/google/protobuf/AbstractMessage.java @@ -193,7 +193,7 @@ public abstract class AbstractMessage if (list.isEmpty()) { return Collections.emptyMap(); } - Map result = new HashMap(); + Map result = new HashMap<>(); Iterator iterator = list.iterator(); Message entry = (Message) iterator.next(); Descriptors.Descriptor descriptor = entry.getDescriptorForType(); --- a/java/core/src/main/java/com/google/protobuf/ByteString.java +++ b/java/core/src/main/java/com/google/protobuf/ByteString.java @@ -30,6 +30,10 @@ package com.google.protobuf; +import static com.google.protobuf.TextFormatEscaper.escapeBytes; +import static java.lang.Integer.toHexString; +import static java.lang.System.identityHashCode; + import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -49,6 +53,7 @@ import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.NoSuchElementException; /** @@ -1268,7 +1273,17 @@ public abstract class ByteString impleme @Override public final String toString() { return String.format( - "<ByteString@%s size=%d>", Integer.toHexString(System.identityHashCode(this)), size()); + Locale.ROOT, + "<ByteString@%s size=%d contents=\"%s\">", + toHexString(identityHashCode(this)), + size(), + truncateAndEscapeForDisplay()); + } + + private String truncateAndEscapeForDisplay() { + final int limit = 50; + + return size() <= limit ? escapeBytes(this) : escapeBytes(substring(0, limit - 3)) + "..."; } /** --- a/java/core/src/main/java/com/google/protobuf/FieldSet.java +++ b/java/core/src/main/java/com/google/protobuf/FieldSet.java @@ -526,7 +526,7 @@ final class FieldSet<T extends FieldSet. if (descriptor.isRepeated()) { Object value = getField(descriptor); if (value == null) { - value = new ArrayList(); + value = new ArrayList<>(); } for (Object element : (List) otherValue) { ((List) value).add(cloneIfMutable(element)); @@ -1266,7 +1266,7 @@ final class FieldSet<T extends FieldSet. if (descriptor.isRepeated()) { Object value = getField(descriptor); if (value == null) { - value = new ArrayList(); + value = new ArrayList<>(); } for (Object element : (List) otherValue) { ((List) value).add(FieldSet.cloneIfMutable(element)); --- a/java/core/src/main/java/com/google/protobuf/GeneratedMessageLite.java +++ b/java/core/src/main/java/com/google/protobuf/GeneratedMessageLite.java @@ -1238,7 +1238,7 @@ public abstract class GeneratedMessageLi Object fromFieldSetType(final Object value) { if (descriptor.isRepeated()) { if (descriptor.getLiteJavaType() == WireFormat.JavaType.ENUM) { - final List result = new ArrayList(); + final List result = new ArrayList<>(); for (final Object element : (List) value) { result.add(singularFromFieldSetType(element)); } @@ -1263,7 +1263,7 @@ public abstract class GeneratedMessageLi Object toFieldSetType(final Object value) { if (descriptor.isRepeated()) { if (descriptor.getLiteJavaType() == WireFormat.JavaType.ENUM) { - final List result = new ArrayList(); + final List result = new ArrayList<>(); for (final Object element : (List) value) { result.add(singularToFieldSetType(element)); } --- a/java/core/src/main/java/com/google/protobuf/GeneratedMessageV3.java +++ b/java/core/src/main/java/com/google/protobuf/GeneratedMessageV3.java @@ -158,7 +158,7 @@ public abstract class GeneratedMessageV3 /** * Internal helper to return a modifiable map containing all the fields. - * The returned Map is modifialbe so that the caller can add additional + * The returned Map is modifiable so that the caller can add additional * extension fields to implement {@link #getAllFields()}. * * @param getBytesForString whether to generate ByteString for string fields @@ -2853,7 +2853,7 @@ public abstract class GeneratedMessageV3 @Override @SuppressWarnings("unchecked") public Object get(GeneratedMessageV3 message) { - List result = new ArrayList(); + List result = new ArrayList<>(); for (int i = 0; i < getRepeatedCount(message); i++) { result.add(getRepeated(message, i)); } @@ -2863,7 +2863,7 @@ public abstract class GeneratedMessageV3 @Override @SuppressWarnings("unchecked") public Object get(Builder builder) { - List result = new ArrayList(); + List result = new ArrayList<>(); for (int i = 0; i < getRepeatedCount(builder); i++) { result.add(getRepeated(builder, i)); } @@ -3068,7 +3068,7 @@ public abstract class GeneratedMessageV3 @Override @SuppressWarnings("unchecked") public Object get(final GeneratedMessageV3 message) { - final List newList = new ArrayList(); + final List newList = new ArrayList<>(); final int size = getRepeatedCount(message); for (int i = 0; i < size; i++) { newList.add(getRepeated(message, i)); @@ -3079,7 +3079,7 @@ public abstract class GeneratedMessageV3 @Override @SuppressWarnings("unchecked") public Object get(final GeneratedMessageV3.Builder builder) { - final List newList = new ArrayList(); + final List newList = new ArrayList<>(); final int size = getRepeatedCount(builder); for (int i = 0; i < size; i++) { newList.add(getRepeated(builder, i)); --- a/java/core/src/main/java/com/google/protobuf/MapEntry.java +++ b/java/core/src/main/java/com/google/protobuf/MapEntry.java @@ -439,7 +439,7 @@ public final class MapEntry<K, V> extend @Override @SuppressWarnings("unchecked") public Builder<K, V> clone() { - return new Builder(metadata, key, value, hasKey, hasValue); + return new Builder<>(metadata, key, value, hasKey, hasValue); } } --- a/java/core/src/main/java/com/google/protobuf/MapFieldLite.java +++ b/java/core/src/main/java/com/google/protobuf/MapFieldLite.java @@ -58,7 +58,7 @@ public final class MapFieldLite<K, V> ex } @SuppressWarnings({"rawtypes", "unchecked"}) - private static final MapFieldLite EMPTY_MAP_FIELD = new MapFieldLite(); + private static final MapFieldLite EMPTY_MAP_FIELD = new MapFieldLite<>(); static { EMPTY_MAP_FIELD.makeImmutable(); --- a/java/core/src/test/java/com/google/protobuf/ByteStringTest.java +++ b/java/core/src/test/java/com/google/protobuf/ByteStringTest.java @@ -486,6 +486,25 @@ public class ByteStringTest extends Test "copyToStringUtf8 must respect the charset", testString, byteString.toStringUtf8()); } + public void testToString() { + String toString = + ByteString.copyFrom("Here are some bytes: \t\u00a1".getBytes(Internal.UTF_8)).toString(); + assertTrue(toString, toString.contains("size=24")); + assertTrue(toString, toString.contains("contents=\"Here are some bytes: \\t\\302\\241\"")); + } + + public void testToString_long() { + String toString = + ByteString.copyFrom( + "123456789012345678901234567890123456789012345678901234567890" + .getBytes(Internal.UTF_8)) + .toString(); + assertTrue(toString, toString.contains("size=60")); + assertTrue( + toString, + toString.contains("contents=\"12345678901234567890123456789012345678901234567...\"")); + } + public void testNewOutput_InitialCapacity() throws IOException { byte[] bytes = getTestBytes(); ByteString.Output output = ByteString.newOutput(bytes.length + 100); --- a/java/util/src/main/java/com/google/protobuf/util/JsonFormat.java +++ b/java/util/src/main/java/com/google/protobuf/util/JsonFormat.java @@ -1945,6 +1945,14 @@ public class JsonFormat { return field.getEnumType().findValueByNumber(0); } return null; + } else if (json instanceof JsonObject) { + if (field.getType() != FieldDescriptor.Type.MESSAGE + && field.getType() != FieldDescriptor.Type.GROUP) { + // If the field type is primitive, but the json type is JsonObject rather than + // JsonElement, throw a type mismatch error. + throw new InvalidProtocolBufferException( + String.format("Invalid value: %s for expected type: %s", json, field.getType())); + } } switch (field.getType()) { case INT32: --- a/java/util/src/test/java/com/google/protobuf/util/JsonFormatTest.java +++ b/java/util/src/test/java/com/google/protobuf/util/JsonFormatTest.java @@ -1723,6 +1723,22 @@ public class JsonFormatTest extends Test } } + // Test that an error is thrown if a nested JsonObject is parsed as a primitive field. + public void testJsonObjectForPrimitiveField() throws Exception { + TestAllTypes.Builder builder = TestAllTypes.newBuilder(); + try { + mergeFromJson( + "{\n" + + " \"optionalString\": {\n" + + " \"invalidNestedString\": \"Hello world\"\n" + + " }\n" + + "}\n", + builder); + } catch (InvalidProtocolBufferException e) { + // Expected. + } + } + public void testSortedMapKeys() throws Exception { TestMap.Builder mapBuilder = TestMap.newBuilder(); mapBuilder.putStringToInt32Map("\ud834\udd20", 3); // utf-8 F0 9D 84 A0
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor