diff options
author | Brian Duff <bduff@google.com> | 2014-10-03 14:41:43 -0700 |
---|---|---|
committer | Brian Duff <bduff@google.com> | 2015-04-28 11:42:01 -0700 |
commit | ec2f2445546b3e63e4102c3541d4330e97cef07e (patch) | |
tree | bfdc2b4a644bb18754fee4b2a0170aeaf00ce881 /javanano/src/test/java | |
parent | fe7b5667eb446766a1c2f30c691662a36f3df1f8 (diff) | |
download | protobuf-ec2f2445546b3e63e4102c3541d4330e97cef07e.tar.gz protobuf-ec2f2445546b3e63e4102c3541d4330e97cef07e.tar.bz2 protobuf-ec2f2445546b3e63e4102c3541d4330e97cef07e.zip |
Fix bug with large extension field numbers.
Previously, extensions with field numbers greater than 268435455 would
result in a compile time error in generated code that looks something
like this:
Foo.java:3178: error: integer number too large: 3346754610
3346754610);
This is because we were trying to represent the tag number (an
unsigned int) using a java int constant, but java int constants are
signed, and can't exceed Integer.MAX_VALUE.
Fixed by declaring it as a long instead, and casting it down to an
int in the implementation. This is safe, because the tag value always
fits in 32 bis.
Change-Id: If2017bacb4e20af667eaeaf9b65ddc2c30a7709f
Diffstat (limited to 'javanano/src/test/java')
-rw-r--r-- | javanano/src/test/java/com/google/protobuf/nano/unittest_extension_nano.proto | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/javanano/src/test/java/com/google/protobuf/nano/unittest_extension_nano.proto b/javanano/src/test/java/com/google/protobuf/nano/unittest_extension_nano.proto index 2a678a80..d1c5766d 100644 --- a/javanano/src/test/java/com/google/protobuf/nano/unittest_extension_nano.proto +++ b/javanano/src/test/java/com/google/protobuf/nano/unittest_extension_nano.proto @@ -21,6 +21,9 @@ message AnotherMessage { message ContainerMessage { extend ExtendableMessage { optional bool another_thing = 100; + // The largest permitted field number, per + // https://developers.google.com/protocol-buffers/docs/proto#simple + optional bool large_field_number = 536870911; } } |