Skip to content

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Apr 11, 2025

Bumps com.google.code.gson:gson from 2.12.1 to 2.13.0.

Release notes

Sourced from com.google.code.gson:gson's releases.

Gson 2.13.0

What's Changed

  • A bug in deserializing collections has been fixed. Previously, if you did something like this:

    gson.fromJson(jsonString, new TypeToken<ImmutableList<String>>() {})
    

    then the inferred type would be ImmutableList<String>, but Gson actually gave you an ArrayList<String>. Usually that would lead to an immediate ClassCastException, but in some circumstances the code might sometimes succeed despite the wrong type. Now you will see an exception like this:

    com.google.gson.JsonIOException: Abstract classes can't be instantiated!
    Adjust the R8 configuration or register an InstanceCreator or a TypeAdapter for this type.
    Class name: com.google.common.collect.ImmutableList
    

    because Gson now really is trying to create an ImmutableList through its constructor, but that isn't possible. Either change the requested type (in the TypeToken) to List<String>, or register a TypeAdapter or JsonDeserializer for ImmutableList.

  • The internal classes $Gson$Types and $Gson$Preconditions have been renamed to remove the $ characters. Since these are internal classes (as signaled not only by the package name but by the $ characters), client code should not be affected. If your code was depending on these classes then we suggest making a copy of the class (subject to the license) rather than depending on the new names.

Full Changelog: google/gson@gson-parent-2.12.1...gson-parent-2.13.0

Commits
  • bfe0fd5 [maven-release-plugin] prepare release gson-parent-2.13.0
  • 6ed64ca add multi-catch support to the code base (#2841)
  • 0074376 Bump the maven group with 3 updates (#2840)
  • 45e5e14 Rename $Gson$Preconditions and $Gson$Types. (#2838)
  • c6d4425 Remove obsolete comment in pom.xml (#2835)
  • 9afd6f8 Bump the maven group with 10 updates (#2831)
  • ad5371e Fix findings that are new with the latest Error Prone. (#2834)
  • de190d7 Restructure code to avoid assignment expression warning. (#2833)
  • 3d66847 Bump the github-actions group with 3 updates (#2832)
  • 2549ba9 Fix ConstructorConstructor creating mismatching Collection and Map instances ...
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Summary by Sourcery

Enhancements:

  • Update Gson dependency to the latest version in all relevant project POM files

Bumps [com.google.code.gson:gson](https://github.com/google/gson) from 2.12.1 to 2.13.0.
- [Release notes](https://github.com/google/gson/releases)
- [Changelog](https://github.com/google/gson/blob/main/CHANGELOG.md)
- [Commits](google/gson@gson-parent-2.12.1...gson-parent-2.13.0)

---
updated-dependencies:
- dependency-name: com.google.code.gson:gson
  dependency-version: 2.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file java Pull requests that update Java code labels Apr 11, 2025
@sourcery-ai
Copy link

sourcery-ai bot commented Apr 11, 2025

Reviewer's Guide by Sourcery

This pull request bumps the com.google.code.gson:gson dependency from version 2.12.1 to 2.13.0. This change is implemented by updating the version number in the pom.xml files of the affected modules.

Sequence diagram for deserializing collections with Gson

sequenceDiagram
    participant Client
    participant Gson
    participant TypeToken
    participant ArrayList
    participant ImmutableList

    Client->>Gson: fromJson(jsonString, new TypeToken<ImmutableList<String>>() {})
    activate Gson
    Gson->>TypeToken: getType()
    activate TypeToken
    TypeToken-->>Gson: Type
    deactivate TypeToken
    alt Before Gson 2.13.0
        Gson->>ArrayList: Create ArrayList<String>
        activate ArrayList
        ArrayList-->>Gson: ArrayList<String>
        deactivate ArrayList
        Gson-->>Client: ArrayList<String>
    else Gson 2.13.0 and later
        Gson->>ImmutableList: Attempt to create ImmutableList<String>
        activate ImmutableList
        ImmutableList-->>Gson: Exception (Abstract classes can't be instantiated!)
        deactivate ImmutableList
        Gson-->>Client: JsonIOException
    end
    deactivate Gson
Loading

Updated class diagram for Gson library

classDiagram
    class Gson {
        +fromJson(json: String, type: Type): Object
        +toJson(obj: Object): String
    }
    note for Gson "Gson class for serializing and deserializing Java objects to JSON"

    class TypeToken {
        +getType(): Type
    }
    note for TypeToken "Represents a generic type"

    class ImmutableList {
        ---
    }
    note for ImmutableList "Abstract class, can't be instantiated directly"

    class ArrayList {
    }
    note for ArrayList "Concrete List implementation"

    Gson --|> TypeToken : Uses
    Gson --|> ArrayList : Returns
    TypeToken --|> ImmutableList : Represents
Loading

File-Level Changes

Change Details Files
The pull request updates the com.google.code.gson:gson dependency from version 2.12.1 to 2.13.0.
  • Updated the gson dependency version from 2.12.1 to 2.13.0.
approvaltests-tests/pom.xml
approvaltests-util-tests/pom.xml
approvaltests-util/pom.xml
approvaltests/pom.xml

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!
  • Generate a plan of action for an issue: Comment @sourcery-ai plan on
    an issue to generate a plan of action for it.

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

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

We have skipped reviewing this pull request. Here's why:

  • It seems to have been created by a bot (hey, dependabot[bot]!). We assume it knows what it's doing!
  • We don't review packaging changes - Let us know if you'd like us to change this.

@isidore isidore merged commit 34d78d2 into master Apr 11, 2025
28 of 29 checks passed
@dependabot dependabot bot deleted the dependabot/maven/com.google.code.gson-gson-2.13.0 branch April 11, 2025 20:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file java Pull requests that update Java code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant