Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add explicit support for floats in JsonWriter. #2130

Merged
merged 1 commit into from
Jun 8, 2022

Conversation

Capstan
Copy link
Contributor

@Capstan Capstan commented Jun 8, 2022

This avoids floats being treated as doubles and having an unwarranted level of precision.

Fixes #1127.

@eamonnmcmanus eamonnmcmanus self-assigned this Jun 8, 2022
@eamonnmcmanus eamonnmcmanus self-requested a review June 8, 2022 21:44
Copy link
Member

@eamonnmcmanus eamonnmcmanus left a comment

Choose a reason for hiding this comment

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

Thanks, this looks great.

This avoids floats being treated as doubles and having an unwarranted level of precision.

Fixes google#1127.
@eamonnmcmanus eamonnmcmanus merged commit 96ab171 into google:master Jun 8, 2022
@Capstan Capstan deleted the issues-1127 branch June 9, 2022 00:57
@Marcono1234
Copy link
Collaborator

Could you please also override this new method in JsonTreeWriter? Otherwise users will experience an AssertionError.

@Capstan Capstan restored the issues-1127 branch June 10, 2022 23:10
Capstan added a commit to Capstan/gson that referenced this pull request Jun 10, 2022
Follow-up to comments on google#2130, which introduced a new override which was not overridden by JsonTreeWriter. Also tweaks the doccomments for both float and double varients of JsonWriter.value.

Supplement to the fix for google#1127.
Capstan added a commit to Capstan/gson that referenced this pull request Jun 11, 2022
Follow-up to comments on google#2130, which introduced a new override which was not overridden by `JsonTreeWriter`. Also tweaks the doccomments for `float`, `double` and `Number` variants of `JsonWriter.value`.

Supplement to the fix for google#1127.
eamonnmcmanus pushed a commit that referenced this pull request Jun 21, 2022
Follow-up to comments on #2130, which introduced a new override which was not overridden by `JsonTreeWriter`. Also tweaks the doccomments for `float`, `double` and `Number` variants of `JsonWriter.value`.

Supplement to the fix for #1127.
sgammon referenced this pull request in elide-dev/elide Jan 15, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [com.google.code.gson:gson-parent](https://github.com/google/gson) |
`2.9.0` -> `2.10.1` |
[![age](https://badges.renovateapi.com/packages/maven/com.google.code.gson:gson-parent/2.10.1/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/maven/com.google.code.gson:gson-parent/2.10.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/maven/com.google.code.gson:gson-parent/2.10.1/compatibility-slim/2.9.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/maven/com.google.code.gson:gson-parent/2.10.1/confidence-slim/2.9.0)](https://docs.renovatebot.com/merge-confidence/)
|
| [com.google.code.gson:gson](https://github.com/google/gson) |
`2.9.0` -> `2.10.1` |
[![age](https://badges.renovateapi.com/packages/maven/com.google.code.gson:gson/2.10.1/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/maven/com.google.code.gson:gson/2.10.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/maven/com.google.code.gson:gson/2.10.1/compatibility-slim/2.9.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/maven/com.google.code.gson:gson/2.10.1/confidence-slim/2.9.0)](https://docs.renovatebot.com/merge-confidence/)
|

---

### ⚠ Dependency Lookup Warnings ⚠

Warnings were logged while processing this repo. Please check the
Dependency Dashboard for more information.

---

### Release Notes

<details>
<summary>google/gson</summary>

###
[`v2.10`](https://github.com/google/gson/blob/HEAD/CHANGELOG.md#Version-210)

- Support for serializing and deserializing Java records, on Java ≥ 16.
([https://github.com/google/gson/pull/2201](https://github.com/google/gson/pull/2201))
- Add `JsonArray.asList` and `JsonObject.asMap` view methods
([https://github.com/google/gson/pull/2225](https://github.com/google/gson/pull/2225))
- Fix `TypeAdapterRuntimeTypeWrapper` not detecting reflective
`TreeTypeAdapter` and `FutureTypeAdapter`
([https://github.com/google/gson/pull/1787](https://github.com/google/gson/pull/1787))
- Improve `JsonReader.skipValue()`
([https://github.com/google/gson/pull/2062](https://github.com/google/gson/pull/2062))
- Perform numeric conversion for primitive numeric type adapters
([https://github.com/google/gson/pull/2158](https://github.com/google/gson/pull/2158))
- Add `Gson.fromJson(..., TypeToken)` overloads
([https://github.com/google/gson/pull/1700](https://github.com/google/gson/pull/1700))
- Fix changes to `GsonBuilder` affecting existing `Gson` instances
([https://github.com/google/gson/pull/1815](https://github.com/google/gson/pull/1815))
- Make `JsonElement` conversion methods more consistent and fix javadoc
([https://github.com/google/gson/pull/2178](https://github.com/google/gson/pull/2178))
- Throw `UnsupportedOperationException` when `JsonWriter.jsonValue` is
not supported
([https://github.com/google/gson/pull/1651](https://github.com/google/gson/pull/1651))
- Disallow `JsonObject` `Entry.setValue(null)`
([https://github.com/google/gson/pull/2167](https://github.com/google/gson/pull/2167))
- Fix `TypeAdapter.toJson` throwing AssertionError for custom
IOException
([https://github.com/google/gson/pull/2172](https://github.com/google/gson/pull/2172))
- Convert null to JsonNull for `JsonArray.set`
([https://github.com/google/gson/pull/2170](https://github.com/google/gson/pull/2170))
- Fixed nullSafe usage.
([https://github.com/google/gson/pull/1555](https://github.com/google/gson/pull/1555))
- Validate `TypeToken.getParameterized` arguments
([https://github.com/google/gson/pull/2166](https://github.com/google/gson/pull/2166))
- Fix [#&#8203;1702](https://github.com/google/gson/issues/1702):
Gson.toJson creates CharSequence which does not implement toString
([https://github.com/google/gson/pull/1703](https://github.com/google/gson/pull/1703))
- Prefer existing adapter for concurrent `Gson.getAdapter` calls
([https://github.com/google/gson/pull/2153](https://github.com/google/gson/pull/2153))
- Improve `ArrayTypeAdapter` for `Object[]`
([https://github.com/google/gson/pull/1716](https://github.com/google/gson/pull/1716))
- Improve `AppendableWriter` performance
([https://github.com/google/gson/pull/1706](https://github.com/google/gson/pull/1706))

###
[`v2.9.1`](https://github.com/google/gson/blob/HEAD/CHANGELOG.md#Version-291)

- Make `Object` and `JsonElement` deserialization iterative rather than

recursi[https://github.com/google/gson/pull/1912](https://github.com/google/gson/pull/1912)1912)
- Added parsing support for enum that has overridden toString() method
([https://github.com/google/gson/pull/1950](https://github.com/google/gson/pull/1950))
- Removed support for building Gson with Gradle
([https://github.com/google/gson/pull/2081](https://github.com/google/gson/pull/2081))
- Removed obsolete `codegen` hierarchy
([https://github.com/google/gson/pull/2099](https://github.com/google/gson/pull/2099))
- Add support for reflection access filter
([https://github.com/google/gson/pull/1905](https://github.com/google/gson/pull/1905))
- Improve `TypeToken` creation validation
([https://github.com/google/gson/pull/2072](https://github.com/google/gson/pull/2072))
- Add explicit support for `float` in `JsonWriter`
([https://github.com/google/gson/pull/2130](https://github.com/google/gson/pull/2130),
[https://github.com/google/gson/pull/2132](https://github.com/google/gson/pull/2132))
- Fail when parsing invalid local date
([https://github.com/google/gson/pull/2134](https://github.com/google/gson/pull/2134))

Also many small improvements to javadoc.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/elide-dev/v3).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMDIuMCIsInVwZGF0ZWRJblZlciI6IjM0LjEwMi4wIn0=-->
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.

JsonWriter don't work correctly with float
3 participants