This annotation indicates that return value of the annotated method does
not need to be used. If it is _not_ present on a non-void method, and if
Error Prone's `CheckReturnValue` is active, then calling the method
without using the result is an error. However, we are not enabling
`CheckReturnValue` by default here.
Also update some code that does ignore return values, so that the
returned value is used, if only by assigning it to an unused variable.
Previously Maven appended the artifact ID of the modules which lead for
example for the `gson` module to the incorrect URL https://github.com/google/gson/gson
This can be checked with `mvn help:effective-pom`
* FormattingStyle follow-up
* Add links to FormattingStyle
* Use Truth for FormattingStyleTest
* Reduce pull request scope to Javadoc and minor code changes
* Specify Error Prone JVM args with `.mvn/jvm.config`
This allows avoiding fork mode for compilation, which:
- might slightly reduce compilation time
- guarantees that all compiler diagnostics are properly reported
* Combine enforcer executions
* Fix#2334
This commit replaces the `NumberFormatException` with `MalformedJsonException` in the `JsonReader#readEscapeCharacter()` and also fixes the tests.
* Removes white-space
Building already requires JDK >= 11, but previously using a lower JDK
version such as JDK 8 would lead to cryptic build errors because some
compiler flags are unsupported.
Using the Maven Enforcer Plugin makes sure that the build fails early
with a somewhat better to understand error message.
* Adds `@SuppressWarnings("NarrowingCompoundAssignment")`
* Adds `@SuppressWarnings("TypeParameterUnusedInFormals")`
* Adds `@SuppressWarnings("JavaUtilDate")`
* Adds a limit to `String.split()`
* Add `error_prone_annotations` to the `pom.xml`
* Adds `@InlineMe(...)` to deprecated methods
* Adds `@SuppressWarnings("ImmutableEnumChecker")`
* Adds `@SuppressWarnings("ModifiedButNotUsed")`
* Adds `@SuppressWarnings("MixedMutabilityReturnType")`
* Removes an unused import
* Adds `requires` to `module-info.java`
* Adds ErrorProne `link` into `pom.xml`
* Remove unused imports
Removed from:
- ParseBenchmark
* Adds `@SuppressWarnings("EqualsGetClass")`
* Excludes from `proto` just the generated code.
Replaces `.*proto.*` with `.*/generated-test-sources/protobuf/.*` in such way will be excluded just the generated code and not the whole `proto` directory
* Removes an unused variable
Removes the `descriptor` variable because is unused.
* Fixes the `BadImport` warn into `ProtosWithAnnotationsTest`
* Fixes the `BadImport` warns into `ProtosWithAnnotationsTest`
* Enables ErrorProne in `gson/src/test.*`
Removes the `gson/src/test.*` path from the `-XepExcludedPaths` parameter of the ErrorProne plugin
* Fixes `UnusedVariable` warns
This commit fix all `UnusedVariable` warns given by ErrorProne in the `gson/src/test.*` path.
Some field is annotated with `@Keep` that means is used by reflection.
In some other case the record is annotated with `@SuppressWarnings("unused")`
* Fixes `JavaUtilDate` warns
This commit fix all `JavaUtilDate` warns given by ErrorProne in the `gson/src/test.*` path.
Classes/Methods are annotated with `@SuppressWarnings("JavaUtilDate")` because it's not possible use differente Date API.
* Fixes `EqualsGetClass` warns
This commit fix all `EqualsGetClass` warns given by ErrorProne in the `gson/src/test.*` path.
I have rewrite the `equals()` methods to use `instanceof`
* Replaces pattern matching for instanceof with casts
* Fixes `JdkObsolete` warns
This commit fix all `JdkObsolete` warns given by ErrorProne in the `gson/src/test.*` path.
In some cases I have replaced the obsolete JDK classes with the newest alternatives. In other cases, I have added the `@SuppressWarnings("JdkObsolete")`
* Fixes `ClassCanBeStatic` warns
This commit fix all `ClassCanBeStatic` warns given by ErrorProne in the `gson/src/test.*` path.
I have added the `static` keyword, or I have added `@SuppressWarnings("ClassCanBeStatic")`
* Fixes `UndefinedEquals` warns
This commit fix all `UndefinedEquals` warns given by ErrorProne in the `gson/src/test.*` path.
I have added `@SuppressWarnings("UndefinedEquals")` or fixed the asserts
Note: In this commit I have also renamed a test from `testRawCollectionDeserializationNotAlllowed` to `testRawCollectionDeserializationNotAllowed`
* Fixes `GetClassOnEnum` warns
This commit fix all `GetClassOnEnum` warns given by ErrorProne in the `gson/src/test.*` path.
I have replaced the `.getClass()` with `.getDeclaringClass()`
* Fixes `ImmutableEnumChecker` warns
This commit fix all `ImmutableEnumChecker` warns given by ErrorProne in the `gson/src/test.*` path.
I have added the `final` keyword, or I have added the `@SuppressWarnings("ImmutableEnumChecker")` annotation
* Fixes `StaticAssignmentOfThrowable` warns
This commit fix all `StaticAssignmentOfThrowable` warns given by ErrorProne in the `gson/src/test.*` path.
* Fixes `AssertionFailureIgnored` warns
This commit fix all `AssertionFailureIgnored` warns given by ErrorProne in the `gson/src/test.*` path.
I have added the `@SuppressWarnings("AssertionFailureIgnored")` annotation
* Fixes `ModifiedButNotUsed` warns
This commit fix all `ModifiedButNotUsed` warns given by ErrorProne in the `gson/src/test.*` path.
I have added the `@SuppressWarnings("ModifiedButNotUsed")` annotation
* Fixes `MissingSummary` warns
This commit fix all `MissingSummary` warns given by ErrorProne in the `gson/src/test.*` path.
I have remove the Javadoc `@author`
* Fixes `FloatingPointLiteralPrecision` warns
This commit fix all `FloatingPointLiteralPrecision` warns given by ErrorProne in the `gson/src/test.*` path.
I have added the `@SuppressWarnings("FloatingPointLiteralPrecision")` annotation
* Fixes `StringSplitter` warns
This commit fix all `StringSplitter` warns given by ErrorProne in the `gson/src/test.*` path.
I have replaced the `String.split(...)` with `Splitter`
* Fixes `EmptyCatch` warns
This commit fix all `EmptyCatch` warns given by ErrorProne in the `gson/src/test.*` path.
* Fixes `UnicodeEscape` warns
This commit fix all `UnicodeEscape` warns given by ErrorProne in the `gson/src/test.*` path.
* Fixes `EmptyBlockTag` warns
This commit fix all `EmptyBlockTag` warns given by ErrorProne in the `gson/src/test.*` path.
* Fixes `LongFloatConversion` warns
This commit fix all `LongFloatConversion` warns given by ErrorProne in the `gson/src/test.*` path.
* Fixes `LongDoubleConversion` warns
This commit fix all `LongDoubleConversion` warns given by ErrorProne in the `gson/src/test.*` path.
* Fixes `TruthAssertExpected` warns
This commit fix all `TruthAssertExpected` warns given by ErrorProne in the `gson/src/test.*` path.
* Fixes `UnusedMethod` warns
This commit fix all `UnusedMethod` warns given by ErrorProne in the `gson/src/test.*` path.
* Fixes `UnusedTypeParameter` warns
This commit fix all `UnusedTypeParameter` warns given by ErrorProne in the `gson/src/test.*` path.
* Fixes `CatchFail` warns
This commit fix all `CatchFail` warns given by ErrorProne in the `gson/src/test.*` path.
* Fixes `MathAbsoluteNegative` warns
This commit fix all `MathAbsoluteNegative` warns given by ErrorProne in the `gson/src/test.*` path.
* Fixes `LoopOverCharArray` warns
This commit fix all `LoopOverCharArray` warns given by ErrorProne in the `gson/src/test.*` path.
`toCharArray` allocates a new array, using `charAt` is more efficient
* Fixes `HidingField` warns
This commit fix all `HidingField` warns given by ErrorProne in the `gson/src/test.*` path.
* Implements code review feedback
* Implements code review feedback
This commit implements some other code review feedback
* Enable ErrorProne in `extra`
Thi commit removes the `.*extras/src/test.*` path from the `-XepExcludedPaths` parameter of ErrorProne.
* Fix the `JavaUtilDate` warns
This commit fix all `JavaUtilDate` warns given by ErrorProne in the `extras/src/test.*` path.
* Implements code review feedback
* Removes redundant new-line
* Implements code review feedback
* Adds `JDK11` to run test with `--release 11`
* Revert "Adds `JDK11` to run test with `--release 11`"
This reverts commit a7cca386098ae847a10a31c09c3ab9b11eee5920.
* BoundField.write memory optimization
Declare and initialize the type adapter used for writing BoundFields outside of the anonymous class to ensure that a new TypeAdapterRuntimeTypeWrapper is not constructed each time a BoundField is written. This type adapter is only initialized if the BoundField will be used for serialization.
* Avoid confusing nullness-analysis tools
* Adds `JDK11` to run test with `--release 11`
This commit add a new profile `JDK11` that with a JDK <= 11 apply the property `<maven.compiler.testRelease>11</maven.compiler.testRelease>`
* Removes the `JDK11` profile & Adds `testRelease` property
* Adds a javadoc summary to the methods in the `SerializedName` annotation
Fixes the `MissingSummary` warn given by ErrorProne
* Adds a javadoc summary to the methods of the `ExclusionStrategy` annotation
Fixes the `MissingSummary` warn given by ErrorProne
* Adds a javadoc summary to `getDeclaringClass()` and `getName()` methods of the `FieldAttributes` class
Fixes the `MissingSummary` warn given by ErrorProne
* Adds a javadoc summary to `getMajorJavaVersion()` and `isJava9OrLater()` methods of the `JavaVersion` class
Fixes the `MissingSummary` warn given by ErrorProne
* Adds a comment in the empty catch block of the `AccessChecker:101` class
Fixes the `EmptyCatch` warn given by ErrorProne
* Adds a comment in the empty catch block of the `DefaultDateTypeAdapter:158` class
Fixes the `EmptyCatch` warn given by ErrorProne
* Adds a comment in the empty catch blocks of the `UnsafeAllocator:(67|92|113)` class
Fixes the `EmptyCatch` warn given by ErrorProne
* Adds a comment in the empty catch block of the `DateTypeAdapter:85` class
Fixes the `EmptyCatch` warn given by ErrorProne
* Fixes javadoc param of the `deserialize(...)` method of the `JsonDeserializer` interface
Fixes the `InvalidParam` warn given by ErrorProne
* Adds a charset `StandardCharsets.UTF_8` in the `resourceToString()` method of the `ParseBenchmark` class
Fixes the `DefaultCharset` warn given by ErrorProne
* Fixes a typo
* Implements review feedback
* Adds blank line before @ tag.
These show up with recent Error Prone analyses for Truth. Because the
tests use the overload of `Gson.fromJson` that takes a `Type` argument,
rather than the one with a `TypeToken`, the type mismatches were not
detected by the compiler.
* Fix `OperatorPrecedence` warn in `JsonWriter#close`
* Fix `ReferenceEquality` warn in `LinkedTreeMap#replaceInParent`
* Fix `UnnecessaryParentheses` warn in `LinkedTreeMap#replaceInParent`
* Fix `ReferenceEquality` warn in `LinkedTreeMap#hasNext`
* Fix `ReferenceEquality` warn in `LinkedTreeMap#nextNode`
* Adds `error_prone_annotations` to the `pom.xml` of `gson`
* Fix `InlineMeSuggester` warns in `JsonParser`
* Fix `UnnecessaryParentheses` warns in `ConstructorConstructor#newDefaultImplementationConstructor`
* Fix `ThreadLocalUsage` warn in `Gson`
* Fix `JdkObsolete` warn in `GsonBuilder`
* Fix `ReferenceEquality` warn in `LazilyParsedNumber#equals`
* Fix `OperatorPrecedence` warn in `TreeTypeAdapter#create`
* Fix `OperatorPrecedence` warn in `ArrayTypeAdapter`
* Fix `UnnecessaryParentheses` warn in `TypeAdapters`
* Adds `-XepExcludedPaths` flag to ErrorProne plugin to exclude tests and proto path
* Fix `ClassNewInstance` warn in `InterceptorAdapter`
* Fix `ThreadLocalUsage` warn in `GraphAdapterBuilder`
* Fix `JdkObsolete` warn in `GraphAdapterBuilder`
* Revert "Adds `error_prone_annotations` to the `pom.xml` of `gson`"
This reverts commit 14af14dfa23b46a54f4855a70ccf2b0a2cdc3e3f.
* Revert "Fix `InlineMeSuggester` warns in `JsonParser`"
This reverts commit 095bfd517e06510e4cc9cc6b1aac58ad9bf3038a.
* Adds `@SuppressWarnings("ThreadLocalUsage")`
* Fix `OperatorPrecedence` in `JsonWriter`
* Revert "Fix `ReferenceEquality` warn in `LinkedTreeMap#nextNode`"
This reverts commit 387746c7f7e3d0943c8f80501f5d9c3710f4862e.
* Adds `@SuppressWarnings("ReferenceEquality")`
* Adds `guava-testlib` to the gson `pom.xml`
* `@SuppressWarnings("TruthSelfEquals")` removed to use `EqualsTester()`
* Add settings for kind of newline to use
* Fix amp in javadoc
* Fixing link in javadoc
* Doc: use JSON instead of Json
Co-authored-by: Marcono1234 <Marcono1234@users.noreply.github.com>
* PR Feedback: Objects.requireNonNull
Co-authored-by: Marcono1234 <Marcono1234@users.noreply.github.com>
* PR Feedback: $next-version$, don't hardcode
Co-authored-by: Marcono1234 <Marcono1234@users.noreply.github.com>
* s/testNewlineLF/testNewlineLf/
Co-authored-by: Marcono1234 <Marcono1234@users.noreply.github.com>
* Implement PR feedback
* Round two of review
* Restore copyright year, no reason to update
* Rename OS named enum values to CR and LF
* Add javadoc to NewlineStyle.getValue()
* Implement PR feedback, round 2
* Fix typo
Co-authored-by: Marcono1234 <Marcono1234@users.noreply.github.com>
* No need for line break
Co-authored-by: Marcono1234 <Marcono1234@users.noreply.github.com>
* Shorter, cleaner doc
Co-authored-by: Marcono1234 <Marcono1234@users.noreply.github.com>
* Using a FormattingStyle for pretty print
* Fix Junit4 and Truth after merge from master
* Implement review feedback
* Double backslash in message
---------
Co-authored-by: Marcono1234 <Marcono1234@users.noreply.github.com>
* Adds Error Prone to the `pom.xml`
* Adds Error Prone annotations to avoid compiling errors
* Adds profile to run Error Prone in JDK8
* Revert "Adds profile to run Error Prone in JDK8"
This reverts commit 61771d0da55003ea5bc8c6f086d925aec583c9a2.
* Fix Error Prone warn
* Add comment to `pom.xml`
* Fix the `@SuppressWarnings("GetClassOnClass")`
* Replace the Error Prone link in the `pom.xml`
* Disable Error Prone with jdk-15`
* Remove a new-line in `pom.xml`
* Port Junit assert to Truth in `com.google.gson.stream`
* Port Junit assert to Truth in `com.google.gson.regression`
* Port Junit assert to Truth in `om.google.gson.reflect`
* Port Junit assert to Truth in `com.google.gson.metrics`
* Port Junit assert to Truth in `com.google.gson.internal`
* Port Junit assert to Truth in `com.google.gson.internal.sql`
* Port Junit assert to Truth in `com.google.gson.internal.reflect`
* Port Junit assert to Truth in `com.google.gson.internal.bind`
* Port Junit assert to Truth in `com.google.gson.internal.bind.util`
* Port Junit assert to Truth in `com.google.gson.functional`
* Replaces `List.of` with `Arrays.asList` to grant legacy
* Simplify `==` asserts
* Simplify `.contain()` asserts + Minor fixes
* Simplify asserts
* Add the Truth dependency
* Port Junit test to Truth in the package `com.google.gson` of the module `gson`
* Replace the `assertThat(e.getMessage()).isEqualTo(...)"` with `assertThat(e).hasMessageThat().isEqualTo(...)`
* Minor fixes