Skip to content

survey - #78

Merged
ennerf merged 20 commits into
developfrom
claude/survey
Oct 23, 2026
Merged

ennerf merged 20 commits into
developfrom
claude/survey

Conversation

@ennerf

@ennerf ennerf commented Oct 23, 2026

Copy link
Copy Markdown
Collaborator

Did an automated survey over the codebase. The commits were checked and incorrect takes were removed. Generated changelog:

Bug fixes and doc corrections for 1.5

Fixes from an agent survey of the runtime, plus typo, link and doc corrections. All commits
were written by Claude and reviewed by the author. Where in doubt, existing behavior is kept
since this is not a major release. Input that worked in 1.4 still parses the same way, except
for the stricter cases listed under behavior changes.

Binary parsing

  • Negative lengths throw parse errors instead of exceptions or endless loops.
  • Large lengths are checked against the remaining input before allocating memory.
  • Fixed an integer overflow when pushing very large limits.
  • Buffer sources no longer read past the limits of nested fields.
  • Direct sinks and sources accept tagged native addresses (negative values on some Android devices).
  • The recursion limit error names ProtoSource instead of ProtoSink.

Repeated fields

  • addAll(array, offset, length) respects the offset for objects and enums.
  • Adding a repeated enum to itself no longer throws.
  • Reused elements no longer keep old values after a shrinking copyFrom.
  • addAll and copyFrom no longer reallocate repeated objects that already have enough capacity.

JSON

  • Truncated values no longer hang while skipping.
  • Base64 without padding is accepted, as the proto3 JSON mapping requires (the built-in source
    threw a NullPointerException). Output is still padded.
  • Escaped forward slashes (\/) are accepted in strings and bytes.
  • Closing a JSON sink no longer clears the caller's output buffer.
  • Invalid characters in numbers throw instead of causing index exceptions or wrong values.
  • uint32 and fixed32 accept values up to 2^32-1. Negative values written by older versions
    still parse.

Behavior changes

  • int32 values out of range throw instead of being silently truncated.
  • Unquoted bytes values are rejected.
  • Invalid characters in numbers throw (see above).

Docs

  • README fixes (badges, protoc plugin syntax, ProGuard config path), typos and comments.
  • Documented the utf8 caching side effect of getSerializedSize(), and growing outputs and
    length-delimited streams.

Verification

  • mvn clean package on zulu 8, 25 and 27: 265 tests, 0 failures.
  • Protobuf conformance runners 3.20.2 and 3.21.4: 653 successes, 0 failures each.

@ennerf
ennerf merged commit 504b1b8 into develop Oct 23, 2026
1 check passed
@ennerf
ennerf deleted the claude/survey branch October 23, 2026 19:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant