Skip to content

Conversation

@feeblefakie
Copy link
Contributor

This is an automated backport of the following:

Please merge this PR after all checks have passed.

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @feeblefakie, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request is an automated backport that addresses a limitation in Object Storage related to the maximum allowed string length during serialization. It significantly increases this limit by reconfiguring the underlying JSON ObjectMapper and introduces a robust validation mechanism for BlobColumn data. This ensures that even with the increased limit, blob values are checked against their Base64 encoded size to prevent data integrity issues and serialization errors, ultimately allowing for larger data storage in blob columns.

Highlights

  • Increased String Length Limit: The maximum allowed string length for Object Storage serialization has been increased to Integer.MAX_VALUE by configuring the ObjectMapper to relax previous constraints.
  • Blob Column Length Validation: A new validation has been introduced for BlobColumn values during Put operations. This check ensures that the Base64 encoded size of blob data does not exceed the newly defined maximum string length, preventing potential serialization issues.
  • New Error Code: A specific error code, OBJECT_STORAGE_BLOB_EXCEEDS_MAX_LENGTH_ALLOWED, has been added to CoreError to clearly indicate when a blob column value exceeds the allowed size.
  • Enhanced Test Coverage: New unit tests have been added to ObjectStorageOperationCheckerTest to verify the correct behavior of the blob column length validation, covering both valid and exceeding length scenarios.
  • Integration Test Refactoring: The access modifiers for prepareGet and preparePuts methods in DistributedStorageIntegrationTestBase were changed from private to protected, allowing for broader use in subclasses.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request backports a fix to increase the maximum allowed string length for Object Storage. The core change is in Serializer.java, where the Jackson ObjectMapper is configured to allow strings up to Integer.MAX_VALUE. To prevent issues with large blob values, ObjectStorageOperationChecker.java is updated to validate the size of BlobColumn values before they are Base64-encoded, ensuring they won't exceed the new limit. New unit tests are added to verify this validation logic. The changes are logical and well-implemented. I have a few minor suggestions to improve maintainability and clarity.

@brfrn169 brfrn169 merged commit a78dbf8 into 3 Dec 8, 2025
204 of 209 checks passed
@brfrn169 brfrn169 deleted the 3-pull-3248 branch December 8, 2025 02:06
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.

3 participants