You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by GitBox <gi...@apache.org> on 2022/11/23 18:53:28 UTC

[GitHub] [lucene] rmuir opened a new pull request, #11970: Invert error-prone configuration to be allow-list vs deny-list

rmuir opened a new pull request, #11970:
URL: https://github.com/apache/lucene/pull/11970

   This does not change the semantics or performance of our setup.
   
   Instead, it explicitly enables checks that we want vs disabling checks that we don't want.
   
   Also reordered checks to match the error-prone website list of checks for easier maintenance.
   
   It is now clear that many useless checks are enabled, we can disable some of them and try to get the performance reasonable.
   
   Closes #11969
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org


[GitHub] [lucene] rmuir commented on pull request #11970: Invert error-prone configuration to be allow-list vs deny-list

Posted by GitBox <gi...@apache.org>.
rmuir commented on PR #11970:
URL: https://github.com/apache/lucene/pull/11970#issuecomment-1325589076

   see https://github.com/apache/lucene/pull/11971
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org


[GitHub] [lucene] rmuir merged pull request #11970: Invert error-prone configuration to be allow-list vs deny-list

Posted by GitBox <gi...@apache.org>.
rmuir merged PR #11970:
URL: https://github.com/apache/lucene/pull/11970


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org


[GitHub] [lucene] rmuir commented on pull request #11970: Invert error-prone configuration to be allow-list vs deny-list

Posted by GitBox <gi...@apache.org>.
rmuir commented on PR #11970:
URL: https://github.com/apache/lucene/pull/11970#issuecomment-1325581405

   i have a followup PR for disabling useless stuff. This change is a no-op as described.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org


[GitHub] [lucene] madrob commented on a diff in pull request #11970: Invert error-prone configuration to be allow-list vs deny-list

Posted by GitBox <gi...@apache.org>.
madrob commented on code in PR #11970:
URL: https://github.com/apache/lucene/pull/11970#discussion_r1030816917


##########
gradle/validation/error-prone.gradle:
##########
@@ -68,119 +68,420 @@ allprojects { prj ->
 
         options.errorprone.disableWarningsInGeneratedCode = true
         options.errorprone.errorproneArgs = [
+            '-XepDisableAllChecks', // only enable specific checks
             '-XepAllErrorsAsWarnings', // warnings still fail build by default, but allows usage of -Pjavac.failOnWarnings=false
-            '-Xep:InlineMeSuggester:OFF', // We don't use this annotation
 
-            // test
-            '-Xep:AlmostJavadoc:OFF',
-            '-Xep:AlreadyChecked:OFF',
-            '-Xep:AmbiguousMethodReference:OFF',
-            '-Xep:ArgumentSelectionDefectChecker:OFF',
-            '-Xep:ArrayAsKeyOfSetOrMap:OFF',
-            '-Xep:ArrayEquals:OFF',
-            '-Xep:ArrayHashCode:OFF',
-            '-Xep:ArrayToString:OFF',
-            '-Xep:AssertionFailureIgnored:OFF',
-            '-Xep:BadImport:OFF',
-            '-Xep:BadInstanceof:OFF',
-            '-Xep:BadShiftAmount:OFF',
-            '-Xep:BoxedPrimitiveConstructor:OFF', // we have forbiddenapis for that
-            '-Xep:ByteBufferBackingArray:OFF',
-            '-Xep:CanIgnoreReturnValueSuggester:OFF',
-            '-Xep:CatchAndPrintStackTrace:OFF',
-            '-Xep:CatchFail:OFF',
-            '-Xep:CharacterGetNumericValue:OFF',
-            '-Xep:ClassCanBeStatic:OFF',
-            '-Xep:CollectionIncompatibleType:OFF',
-            '-Xep:CollectionUndefinedEquality:OFF',
-            '-Xep:ComparableType:OFF',
-            '-Xep:ComplexBooleanConstant:OFF',
-            '-Xep:DefaultPackage:OFF',
-            '-Xep:DoNotCallSuggester:OFF',
-            '-Xep:DoNotCall:OFF',
-            '-Xep:DoubleBraceInitialization:OFF',
-            '-Xep:DoubleCheckedLocking:OFF',
-            '-Xep:EmptyCatch:OFF',
-            '-Xep:EmptyTopLevelDeclaration:OFF',
-            '-Xep:EqualsGetClass:OFF',
-            '-Xep:EqualsIncompatibleType:OFF',
-            '-Xep:EqualsUnsafeCast:OFF',
-            '-Xep:EscapedEntity:OFF',
-            '-Xep:ExtendingJUnitAssert:OFF',
-            '-Xep:ExtendsObject:OFF',
-            '-Xep:FallThrough:OFF',
-            '-Xep:Finally:OFF',
-            '-Xep:FloatingPointLiteralPrecision:OFF',
-            '-Xep:FormatString:OFF',
-            '-Xep:FutureReturnValueIgnored:OFF',
-            '-Xep:HidingField:OFF',
-            '-Xep:IdentityBinaryExpression:OFF',
-            '-Xep:IdentityHashMapUsage:OFF',
-            '-Xep:ImmutableEnumChecker:OFF',
-            '-Xep:InconsistentCapitalization:OFF',
-            '-Xep:InconsistentHashCode:OFF',
-            '-Xep:InfiniteRecursion:OFF',
-            '-Xep:InlineFormatString:OFF',
-            '-Xep:InputStreamSlowMultibyteRead:OFF',
-            '-Xep:IntLongMath:OFF',
-            '-Xep:InvalidBlockTag:OFF',
-            '-Xep:InvalidInlineTag:OFF',
-            '-Xep:InvalidParam:OFF',
-            '-Xep:InvalidPatternSyntax:OFF',
-            '-Xep:JUnit4TestNotRun:OFF',
-            '-Xep:JavaLangClash:OFF',
-            '-Xep:JavaUtilDate:OFF',
-            '-Xep:JdkObsolete:OFF',
-            '-Xep:LockNotBeforeTry:OFF',
-            '-Xep:LogicalAssignment:OFF',
-            '-Xep:LongDoubleConversion:OFF',
-            '-Xep:MathAbsoluteRandom:OFF',
-            '-Xep:MissingFail:OFF',
-            '-Xep:MissingOverride:OFF',
-            '-Xep:MissingSummary:OFF',
-            '-Xep:MisusedDayOfYear:OFF',
-            '-Xep:MixedMutabilityReturnType:OFF',
-            '-Xep:ModifiedButNotUsed:OFF',
-            '-Xep:MutablePublicArray:OFF',
-            '-Xep:NarrowingCompoundAssignment:OFF',
-            '-Xep:NonAtomicVolatileUpdate:OFF',
-            '-Xep:NonCanonicalType:OFF',
-            '-Xep:ObjectToString:OFF',
-            '-Xep:ObjectsHashCodePrimitive:OFF',
-            '-Xep:OperatorPrecedence:OFF',
-            '-Xep:ProtectedMembersInFinalClass:OFF',
-            '-Xep:ReferenceEquality:OFF',
-            '-Xep:ReturnValueIgnored:OFF',
-            '-Xep:SameNameButDifferent:OFF',
-            '-Xep:SelfAssignment:OFF',
-            '-Xep:ShortCircuitBoolean:OFF',
-            '-Xep:StaticAssignmentInConstructor:OFF',
-            '-Xep:StaticAssignmentOfThrowable:OFF',
-            '-Xep:StaticGuardedByInstance:OFF',
-            '-Xep:StreamResourceLeak:OFF',
+            // List of enabled/disabled checks
+            // Please keep this synced with https://errorprone.info/bugpatterns when upgrading!
+
+            // On by Default : ERROR
+
+            '-Xep:AlwaysThrows:ERROR',
+            '-Xep:AndroidInjectionBeforeSuper:ERROR',
+            // '-Xep:ArrayEquals:OFF',
+            '-Xep:ArrayFillIncompatibleType:ERROR',
+            // '-Xep:ArrayHashCode:OFF',
+            // '-Xep:ArrayToString:OFF',
+            '-Xep:ArraysAsListPrimitiveArray:ERROR',
+            '-Xep:AsyncCallableReturnsNull:ERROR',
+            '-Xep:AsyncFunctionReturnsNull:ERROR',
+            '-Xep:AutoValueBuilderDefaultsInConstructor:ERROR',
+            '-Xep:AutoValueConstructorOrderChecker:ERROR',
+            '-Xep:BadAnnotationImplementation:ERROR',
+            // '-Xep:BadShiftAmount:OFF',
+            '-Xep:BanJNDI:ERROR',
+            '-Xep:BoxedPrimitiveEquality:ERROR',
+            '-Xep:BundleDeserializationCast:ERROR',
+            '-Xep:ChainingConstructorIgnoresParameter:ERROR',
+            '-Xep:CheckNotNullMultipleTimes:ERROR',
+            '-Xep:CheckReturnValue:ERROR',
+            '-Xep:CollectionToArraySafeParameter:ERROR',
+            // '-Xep:ComparableType:OFF',
+            '-Xep:ComparingThisWithNull:ERROR',
+            '-Xep:ComparisonOutOfRange:ERROR',
+            '-Xep:CompatibleWithAnnotationMisuse:ERROR',
+            '-Xep:CompileTimeConstant:ERROR',
+            '-Xep:ComputeIfAbsentAmbiguousReference:ERROR',
+            '-Xep:ConditionalExpressionNumericPromotion:ERROR',
+            '-Xep:ConstantOverflow:ERROR',
+            '-Xep:DaggerProvidesNull:ERROR',
+            '-Xep:DangerousLiteralNull:ERROR',
+            '-Xep:DeadException:ERROR',
+            '-Xep:DeadThread:ERROR',
+            '-Xep:DiscardedPostfixExpression:ERROR',
+            // '-Xep:DoNotCall:OFF',
+            '-Xep:DoNotMock:ERROR',
+            // '-Xep:DoubleBraceInitialization:OFF',
+            '-Xep:DuplicateMapKeys:ERROR',
+            '-Xep:DurationFrom:ERROR',
+            '-Xep:DurationGetTemporalUnit:ERROR',
+            '-Xep:DurationTemporalUnit:ERROR',
+            '-Xep:DurationToLongTimeUnit:ERROR',
+            // '-Xep:EmptyTopLevelDeclaration:OFF',
+            '-Xep:EqualsHashCode:ERROR',
+            '-Xep:EqualsNaN:ERROR',
+            '-Xep:EqualsNull:ERROR',
+            '-Xep:EqualsReference:ERROR',
+            '-Xep:EqualsWrongThing:ERROR',
+            '-Xep:FloggerFormatString:ERROR',
+            '-Xep:FloggerLogVarargs:ERROR',
+            '-Xep:FloggerSplitLogStatement:ERROR',
+            '-Xep:ForOverride:ERROR',
+            // '-Xep:FormatString:OFF',
+            '-Xep:FormatStringAnnotation:ERROR',
+            '-Xep:FromTemporalAccessor:ERROR',
+            '-Xep:FunctionalInterfaceMethodChanged:ERROR',
+            '-Xep:FuturesGetCheckedIllegalExceptionType:ERROR',
+            '-Xep:FuzzyEqualsShouldNotBeUsedInEqualsMethod:ERROR',
+            '-Xep:GetClassOnAnnotation:ERROR',
+            '-Xep:GetClassOnClass:ERROR',
+            '-Xep:GuardedBy:ERROR',
+            '-Xep:GuiceAssistedInjectScoping:ERROR',
+            '-Xep:GuiceAssistedParameters:ERROR',
+            '-Xep:GuiceInjectOnFinalField:ERROR',
+            '-Xep:HashtableContains:ERROR',
+            // '-Xep:IdentityBinaryExpression:OFF',
+            '-Xep:IdentityHashMapBoxing:ERROR',
+            '-Xep:IgnoredPureGetter:ERROR',
+            '-Xep:Immutable:ERROR',
+            '-Xep:Incomparable:ERROR',
+            '-Xep:IncompatibleArgumentType:ERROR',
+            '-Xep:IncompatibleModifiers:ERROR',
+            '-Xep:IndexOfChar:ERROR',
+            '-Xep:InexactVarargsConditional:ERROR',
+            // '-Xep:InfiniteRecursion:OFF',
+            '-Xep:InjectMoreThanOneScopeAnnotationOnClass:ERROR',
+            '-Xep:InjectOnMemberAndConstructor:ERROR',
+            '-Xep:InlineMeValidator:ERROR',
+            '-Xep:InstantTemporalUnit:ERROR',
+            '-Xep:InvalidJavaTimeConstant:ERROR',
+            // '-Xep:InvalidPatternSyntax:OFF',
+            '-Xep:InvalidTimeZoneID:ERROR',
+            '-Xep:InvalidZoneId:ERROR',
+            '-Xep:IsInstanceIncompatibleType:ERROR',
+            '-Xep:IsInstanceOfClass:ERROR',
+            '-Xep:IsLoggableTagLength:ERROR',
+            '-Xep:JUnit3TestNotRun:ERROR',
+            '-Xep:JUnit4ClassAnnotationNonStatic:ERROR',
+            '-Xep:JUnit4SetUpNotRun:ERROR',
+            '-Xep:JUnit4TearDownNotRun:ERROR',
+            //'-Xep:JUnit4TestNotRun:OFF',
+            '-Xep:JUnit4TestsNotRunWithinEnclosed:ERROR',
+            '-Xep:JUnitAssertSameCheck:ERROR',
+            '-Xep:JUnitParameterMethodNotFound:ERROR',
+            '-Xep:JavaxInjectOnAbstractMethod:ERROR',
+            '-Xep:JodaToSelf:ERROR',
+            '-Xep:LiteByteStringUtf8:ERROR',
+            '-Xep:LocalDateTemporalAmount:ERROR',
+            '-Xep:LockOnBoxedPrimitive:ERROR',
+            '-Xep:LoopConditionChecker:ERROR',
+            '-Xep:LossyPrimitiveCompare:ERROR',
+            '-Xep:MathRoundIntLong:ERROR',
+            '-Xep:MislabeledAndroidString:ERROR',
+            '-Xep:MisplacedScopeAnnotations:ERROR',
+            '-Xep:MissingSuperCall:ERROR',
+            '-Xep:MissingTestCall:ERROR',
+            // '-Xep:MisusedDayOfYear:OFF',
+            '-Xep:MisusedWeekYear:ERROR',
+            '-Xep:MixedDescriptors:ERROR',
+            '-Xep:MockitoUsage:ERROR',
+            '-Xep:ModifyingCollectionWithItself:ERROR',
+            '-Xep:MoreThanOneInjectableConstructor:ERROR',
+            '-Xep:MustBeClosedChecker:ERROR',
+            '-Xep:NCopiesOfChar:ERROR',
+            '-Xep:NoCanIgnoreReturnValueOnClasses:ERROR',
+            '-Xep:NonCanonicalStaticImport:ERROR',
+            '-Xep:NonFinalCompileTimeConstant:ERROR',
+            '-Xep:NonRuntimeAnnotation:ERROR',
+            '-Xep:NullArgumentForNonNullParameter:ERROR',
+            '-Xep:NullTernary:ERROR',
+            '-Xep:NullableOnContainingClass:ERROR',
+            '-Xep:OptionalEquality:ERROR',
+            '-Xep:OptionalMapUnusedValue:ERROR',
+            '-Xep:OptionalOfRedundantMethod:ERROR',
+            '-Xep:OverlappingQualifierAndScopeAnnotation:ERROR',
+            '-Xep:OverridesJavaxInjectableMethod:ERROR',
+            '-Xep:PackageInfo:ERROR',
+            '-Xep:ParametersButNotParameterized:ERROR',
+            '-Xep:ParcelableCreator:ERROR',
+            '-Xep:PeriodFrom:ERROR',
+            '-Xep:PeriodGetTemporalUnit:ERROR',
+            '-Xep:PeriodTimeMath:ERROR',
+            '-Xep:PreconditionsInvalidPlaceholder:ERROR',
+            '-Xep:PrivateSecurityContractProtoAccess:ERROR',
+            '-Xep:ProtoBuilderReturnValueIgnored:ERROR',
+            '-Xep:ProtoFieldNullComparison:ERROR',
+            '-Xep:ProtoStringFieldReferenceEquality:ERROR',
+            '-Xep:ProtoTruthMixedDescriptors:ERROR',
+            '-Xep:ProtocolBufferOrdinal:ERROR',
+            '-Xep:ProvidesMethodOutsideOfModule:ERROR',
+            '-Xep:RandomCast:ERROR',
+            '-Xep:RandomModInteger:ERROR',
+            '-Xep:RectIntersectReturnValueIgnored:ERROR',
+            '-Xep:RequiredModifiers:ERROR',
+            '-Xep:RestrictedApiChecker:ERROR',
+            // '-Xep:ReturnValueIgnored:OFF',
+            // '-Xep:SelfAssignment:OFF',
+            '-Xep:SelfComparison:ERROR',
+            '-Xep:SelfEquals:ERROR',
+            '-Xep:ShouldHaveEvenArgs:ERROR',
+            '-Xep:SizeGreaterThanOrEqualsZero:ERROR',
+            '-Xep:StreamToString:ERROR',
+            '-Xep:StringBuilderInitWithChar:ERROR',
+            '-Xep:SubstringOfZero:ERROR',
+            '-Xep:SuppressWarningsDeprecated:ERROR',
+            '-Xep:TemporalAccessorGetChronoField:ERROR',
+            '-Xep:TestParametersNotInitialized:ERROR',
+            '-Xep:TheoryButNoTheories:ERROR',
+            '-Xep:ThrowIfUncheckedKnownChecked:ERROR',
+            // '-Xep:ThrowNull:OFF',
+            '-Xep:TreeToString:ERROR',
+            '-Xep:TruthSelfEquals:ERROR',
+            // '-Xep:TryFailThrowable:OFF',
+            '-Xep:TypeParameterQualifier:ERROR',
+            '-Xep:UnicodeDirectionalityCharacters:ERROR',
+            // '-Xep:UnicodeInCode:OFF',
+            '-Xep:UnnecessaryCheckNotNull:ERROR',
+            '-Xep:UnnecessaryTypeArgument:ERROR',
+            '-Xep:UnsafeWildcard:ERROR',
+            '-Xep:UnusedAnonymousClass:ERROR',
+            '-Xep:UnusedCollectionModifiedInPlace:ERROR',
+            '-Xep:VarTypeName:ERROR',
+            '-Xep:WrongOneof:ERROR',
+            '-Xep:XorPower:ERROR',
+            '-Xep:ZoneIdOfZ:ERROR',
+
+            // On by Default : WARNING
+
+            // '-Xep:AlmostJavadoc:OFF',
+            // '-Xep:AlreadyChecked:OFF',
+            // '-Xep:AmbiguousMethodReference:OFF',
+            '-Xep:AnnotateFormatMethod:WARN',
+            // '-Xep:ArgumentSelectionDefectChecker:OFF',
+            // '-Xep:ArrayAsKeyOfSetOrMap:OFF',
+            '-Xep:AssertEqualsArgumentOrderChecker:WARN',
+            '-Xep:AssertThrowsMultipleStatements:WARN',
+            // '-Xep:AssertionFailureIgnored:OFF',
+            '-Xep:AssistedInjectAndInjectOnSameConstructor:WARN',
+            '-Xep:AutoValueFinalMethods:WARN',
+            '-Xep:AutoValueImmutableFields:WARN',
+            '-Xep:AutoValueSubclassLeaked:WARN',
+            '-Xep:BadComparable:WARN',
+            // '-Xep:BadImport:OFF',
+            // '-Xep:BadInstanceof:OFF',
+            '-Xep:BareDotMetacharacter:WARN',
+            '-Xep:BigDecimalEquals:WARN',
+            '-Xep:BigDecimalLiteralDouble:WARN',
+            // '-Xep:BoxedPrimitiveConstructor:OFF', // we have forbiddenapis for that
+            '-Xep:BugPatternNaming:WARN',
+            // '-Xep:ByteBufferBackingArray:OFF',
+            '-Xep:CacheLoaderNull:WARN',
+            '-Xep:CanonicalDuration:WARN',
+            // '-Xep:CatchAndPrintStackTrace:OFF',
+            // '-Xep:CatchFail:OFF',
+            '-Xep:ChainedAssertionLosesContext:WARN',
+            // '-Xep:CharacterGetNumericValue:OFF',
+            // '-Xep:ClassCanBeStatic:OFF',
+            '-Xep:ClassNewInstance:WARN',
+            '-Xep:CloseableProvides:WARN',
+            // '-Xep:CollectionUndefinedEquality:OFF',
+            '-Xep:CollectorShouldNotUseState:WARN',
+            '-Xep:ComparableAndComparator:WARN',
+            '-Xep:CompareToZero:WARN',
+            // '-Xep:ComplexBooleanConstant:OFF',
+            '-Xep:DateChecker:WARN',
+            '-Xep:DateFormatConstant:WARN',
+            '-Xep:DefaultCharset:WARN',

Review Comment:
   does forbidden APIs do this one?



##########
gradle/validation/error-prone.gradle:
##########
@@ -68,119 +68,420 @@ allprojects { prj ->
 
         options.errorprone.disableWarningsInGeneratedCode = true
         options.errorprone.errorproneArgs = [
+            '-XepDisableAllChecks', // only enable specific checks
             '-XepAllErrorsAsWarnings', // warnings still fail build by default, but allows usage of -Pjavac.failOnWarnings=false
-            '-Xep:InlineMeSuggester:OFF', // We don't use this annotation
 
-            // test
-            '-Xep:AlmostJavadoc:OFF',
-            '-Xep:AlreadyChecked:OFF',
-            '-Xep:AmbiguousMethodReference:OFF',
-            '-Xep:ArgumentSelectionDefectChecker:OFF',
-            '-Xep:ArrayAsKeyOfSetOrMap:OFF',
-            '-Xep:ArrayEquals:OFF',
-            '-Xep:ArrayHashCode:OFF',
-            '-Xep:ArrayToString:OFF',
-            '-Xep:AssertionFailureIgnored:OFF',
-            '-Xep:BadImport:OFF',
-            '-Xep:BadInstanceof:OFF',
-            '-Xep:BadShiftAmount:OFF',
-            '-Xep:BoxedPrimitiveConstructor:OFF', // we have forbiddenapis for that
-            '-Xep:ByteBufferBackingArray:OFF',
-            '-Xep:CanIgnoreReturnValueSuggester:OFF',
-            '-Xep:CatchAndPrintStackTrace:OFF',
-            '-Xep:CatchFail:OFF',
-            '-Xep:CharacterGetNumericValue:OFF',
-            '-Xep:ClassCanBeStatic:OFF',
-            '-Xep:CollectionIncompatibleType:OFF',
-            '-Xep:CollectionUndefinedEquality:OFF',
-            '-Xep:ComparableType:OFF',
-            '-Xep:ComplexBooleanConstant:OFF',
-            '-Xep:DefaultPackage:OFF',
-            '-Xep:DoNotCallSuggester:OFF',
-            '-Xep:DoNotCall:OFF',
-            '-Xep:DoubleBraceInitialization:OFF',
-            '-Xep:DoubleCheckedLocking:OFF',
-            '-Xep:EmptyCatch:OFF',
-            '-Xep:EmptyTopLevelDeclaration:OFF',
-            '-Xep:EqualsGetClass:OFF',
-            '-Xep:EqualsIncompatibleType:OFF',
-            '-Xep:EqualsUnsafeCast:OFF',
-            '-Xep:EscapedEntity:OFF',
-            '-Xep:ExtendingJUnitAssert:OFF',
-            '-Xep:ExtendsObject:OFF',
-            '-Xep:FallThrough:OFF',
-            '-Xep:Finally:OFF',
-            '-Xep:FloatingPointLiteralPrecision:OFF',
-            '-Xep:FormatString:OFF',
-            '-Xep:FutureReturnValueIgnored:OFF',
-            '-Xep:HidingField:OFF',
-            '-Xep:IdentityBinaryExpression:OFF',
-            '-Xep:IdentityHashMapUsage:OFF',
-            '-Xep:ImmutableEnumChecker:OFF',
-            '-Xep:InconsistentCapitalization:OFF',
-            '-Xep:InconsistentHashCode:OFF',
-            '-Xep:InfiniteRecursion:OFF',
-            '-Xep:InlineFormatString:OFF',
-            '-Xep:InputStreamSlowMultibyteRead:OFF',
-            '-Xep:IntLongMath:OFF',
-            '-Xep:InvalidBlockTag:OFF',
-            '-Xep:InvalidInlineTag:OFF',
-            '-Xep:InvalidParam:OFF',
-            '-Xep:InvalidPatternSyntax:OFF',
-            '-Xep:JUnit4TestNotRun:OFF',
-            '-Xep:JavaLangClash:OFF',
-            '-Xep:JavaUtilDate:OFF',
-            '-Xep:JdkObsolete:OFF',
-            '-Xep:LockNotBeforeTry:OFF',
-            '-Xep:LogicalAssignment:OFF',
-            '-Xep:LongDoubleConversion:OFF',
-            '-Xep:MathAbsoluteRandom:OFF',
-            '-Xep:MissingFail:OFF',
-            '-Xep:MissingOverride:OFF',
-            '-Xep:MissingSummary:OFF',
-            '-Xep:MisusedDayOfYear:OFF',
-            '-Xep:MixedMutabilityReturnType:OFF',
-            '-Xep:ModifiedButNotUsed:OFF',
-            '-Xep:MutablePublicArray:OFF',
-            '-Xep:NarrowingCompoundAssignment:OFF',
-            '-Xep:NonAtomicVolatileUpdate:OFF',
-            '-Xep:NonCanonicalType:OFF',
-            '-Xep:ObjectToString:OFF',
-            '-Xep:ObjectsHashCodePrimitive:OFF',
-            '-Xep:OperatorPrecedence:OFF',
-            '-Xep:ProtectedMembersInFinalClass:OFF',
-            '-Xep:ReferenceEquality:OFF',
-            '-Xep:ReturnValueIgnored:OFF',
-            '-Xep:SameNameButDifferent:OFF',
-            '-Xep:SelfAssignment:OFF',
-            '-Xep:ShortCircuitBoolean:OFF',
-            '-Xep:StaticAssignmentInConstructor:OFF',
-            '-Xep:StaticAssignmentOfThrowable:OFF',
-            '-Xep:StaticGuardedByInstance:OFF',
-            '-Xep:StreamResourceLeak:OFF',
+            // List of enabled/disabled checks
+            // Please keep this synced with https://errorprone.info/bugpatterns when upgrading!
+
+            // On by Default : ERROR
+
+            '-Xep:AlwaysThrows:ERROR',
+            '-Xep:AndroidInjectionBeforeSuper:ERROR',
+            // '-Xep:ArrayEquals:OFF',
+            '-Xep:ArrayFillIncompatibleType:ERROR',
+            // '-Xep:ArrayHashCode:OFF',
+            // '-Xep:ArrayToString:OFF',
+            '-Xep:ArraysAsListPrimitiveArray:ERROR',
+            '-Xep:AsyncCallableReturnsNull:ERROR',
+            '-Xep:AsyncFunctionReturnsNull:ERROR',
+            '-Xep:AutoValueBuilderDefaultsInConstructor:ERROR',
+            '-Xep:AutoValueConstructorOrderChecker:ERROR',
+            '-Xep:BadAnnotationImplementation:ERROR',
+            // '-Xep:BadShiftAmount:OFF',
+            '-Xep:BanJNDI:ERROR',
+            '-Xep:BoxedPrimitiveEquality:ERROR',
+            '-Xep:BundleDeserializationCast:ERROR',
+            '-Xep:ChainingConstructorIgnoresParameter:ERROR',
+            '-Xep:CheckNotNullMultipleTimes:ERROR',
+            '-Xep:CheckReturnValue:ERROR',
+            '-Xep:CollectionToArraySafeParameter:ERROR',
+            // '-Xep:ComparableType:OFF',
+            '-Xep:ComparingThisWithNull:ERROR',
+            '-Xep:ComparisonOutOfRange:ERROR',
+            '-Xep:CompatibleWithAnnotationMisuse:ERROR',
+            '-Xep:CompileTimeConstant:ERROR',
+            '-Xep:ComputeIfAbsentAmbiguousReference:ERROR',
+            '-Xep:ConditionalExpressionNumericPromotion:ERROR',
+            '-Xep:ConstantOverflow:ERROR',
+            '-Xep:DaggerProvidesNull:ERROR',
+            '-Xep:DangerousLiteralNull:ERROR',
+            '-Xep:DeadException:ERROR',
+            '-Xep:DeadThread:ERROR',
+            '-Xep:DiscardedPostfixExpression:ERROR',
+            // '-Xep:DoNotCall:OFF',
+            '-Xep:DoNotMock:ERROR',
+            // '-Xep:DoubleBraceInitialization:OFF',
+            '-Xep:DuplicateMapKeys:ERROR',
+            '-Xep:DurationFrom:ERROR',
+            '-Xep:DurationGetTemporalUnit:ERROR',
+            '-Xep:DurationTemporalUnit:ERROR',
+            '-Xep:DurationToLongTimeUnit:ERROR',
+            // '-Xep:EmptyTopLevelDeclaration:OFF',
+            '-Xep:EqualsHashCode:ERROR',
+            '-Xep:EqualsNaN:ERROR',
+            '-Xep:EqualsNull:ERROR',
+            '-Xep:EqualsReference:ERROR',
+            '-Xep:EqualsWrongThing:ERROR',
+            '-Xep:FloggerFormatString:ERROR',
+            '-Xep:FloggerLogVarargs:ERROR',
+            '-Xep:FloggerSplitLogStatement:ERROR',
+            '-Xep:ForOverride:ERROR',
+            // '-Xep:FormatString:OFF',
+            '-Xep:FormatStringAnnotation:ERROR',
+            '-Xep:FromTemporalAccessor:ERROR',
+            '-Xep:FunctionalInterfaceMethodChanged:ERROR',
+            '-Xep:FuturesGetCheckedIllegalExceptionType:ERROR',
+            '-Xep:FuzzyEqualsShouldNotBeUsedInEqualsMethod:ERROR',
+            '-Xep:GetClassOnAnnotation:ERROR',
+            '-Xep:GetClassOnClass:ERROR',
+            '-Xep:GuardedBy:ERROR',
+            '-Xep:GuiceAssistedInjectScoping:ERROR',
+            '-Xep:GuiceAssistedParameters:ERROR',
+            '-Xep:GuiceInjectOnFinalField:ERROR',
+            '-Xep:HashtableContains:ERROR',
+            // '-Xep:IdentityBinaryExpression:OFF',
+            '-Xep:IdentityHashMapBoxing:ERROR',
+            '-Xep:IgnoredPureGetter:ERROR',
+            '-Xep:Immutable:ERROR',
+            '-Xep:Incomparable:ERROR',
+            '-Xep:IncompatibleArgumentType:ERROR',
+            '-Xep:IncompatibleModifiers:ERROR',
+            '-Xep:IndexOfChar:ERROR',
+            '-Xep:InexactVarargsConditional:ERROR',
+            // '-Xep:InfiniteRecursion:OFF',
+            '-Xep:InjectMoreThanOneScopeAnnotationOnClass:ERROR',
+            '-Xep:InjectOnMemberAndConstructor:ERROR',
+            '-Xep:InlineMeValidator:ERROR',
+            '-Xep:InstantTemporalUnit:ERROR',
+            '-Xep:InvalidJavaTimeConstant:ERROR',
+            // '-Xep:InvalidPatternSyntax:OFF',
+            '-Xep:InvalidTimeZoneID:ERROR',
+            '-Xep:InvalidZoneId:ERROR',
+            '-Xep:IsInstanceIncompatibleType:ERROR',
+            '-Xep:IsInstanceOfClass:ERROR',
+            '-Xep:IsLoggableTagLength:ERROR',
+            '-Xep:JUnit3TestNotRun:ERROR',
+            '-Xep:JUnit4ClassAnnotationNonStatic:ERROR',
+            '-Xep:JUnit4SetUpNotRun:ERROR',
+            '-Xep:JUnit4TearDownNotRun:ERROR',
+            //'-Xep:JUnit4TestNotRun:OFF',
+            '-Xep:JUnit4TestsNotRunWithinEnclosed:ERROR',
+            '-Xep:JUnitAssertSameCheck:ERROR',
+            '-Xep:JUnitParameterMethodNotFound:ERROR',
+            '-Xep:JavaxInjectOnAbstractMethod:ERROR',
+            '-Xep:JodaToSelf:ERROR',
+            '-Xep:LiteByteStringUtf8:ERROR',
+            '-Xep:LocalDateTemporalAmount:ERROR',
+            '-Xep:LockOnBoxedPrimitive:ERROR',
+            '-Xep:LoopConditionChecker:ERROR',
+            '-Xep:LossyPrimitiveCompare:ERROR',
+            '-Xep:MathRoundIntLong:ERROR',
+            '-Xep:MislabeledAndroidString:ERROR',
+            '-Xep:MisplacedScopeAnnotations:ERROR',
+            '-Xep:MissingSuperCall:ERROR',
+            '-Xep:MissingTestCall:ERROR',
+            // '-Xep:MisusedDayOfYear:OFF',
+            '-Xep:MisusedWeekYear:ERROR',
+            '-Xep:MixedDescriptors:ERROR',
+            '-Xep:MockitoUsage:ERROR',
+            '-Xep:ModifyingCollectionWithItself:ERROR',
+            '-Xep:MoreThanOneInjectableConstructor:ERROR',
+            '-Xep:MustBeClosedChecker:ERROR',
+            '-Xep:NCopiesOfChar:ERROR',
+            '-Xep:NoCanIgnoreReturnValueOnClasses:ERROR',
+            '-Xep:NonCanonicalStaticImport:ERROR',
+            '-Xep:NonFinalCompileTimeConstant:ERROR',
+            '-Xep:NonRuntimeAnnotation:ERROR',
+            '-Xep:NullArgumentForNonNullParameter:ERROR',
+            '-Xep:NullTernary:ERROR',
+            '-Xep:NullableOnContainingClass:ERROR',
+            '-Xep:OptionalEquality:ERROR',
+            '-Xep:OptionalMapUnusedValue:ERROR',
+            '-Xep:OptionalOfRedundantMethod:ERROR',
+            '-Xep:OverlappingQualifierAndScopeAnnotation:ERROR',
+            '-Xep:OverridesJavaxInjectableMethod:ERROR',
+            '-Xep:PackageInfo:ERROR',
+            '-Xep:ParametersButNotParameterized:ERROR',
+            '-Xep:ParcelableCreator:ERROR',
+            '-Xep:PeriodFrom:ERROR',
+            '-Xep:PeriodGetTemporalUnit:ERROR',
+            '-Xep:PeriodTimeMath:ERROR',
+            '-Xep:PreconditionsInvalidPlaceholder:ERROR',
+            '-Xep:PrivateSecurityContractProtoAccess:ERROR',
+            '-Xep:ProtoBuilderReturnValueIgnored:ERROR',
+            '-Xep:ProtoFieldNullComparison:ERROR',
+            '-Xep:ProtoStringFieldReferenceEquality:ERROR',
+            '-Xep:ProtoTruthMixedDescriptors:ERROR',
+            '-Xep:ProtocolBufferOrdinal:ERROR',
+            '-Xep:ProvidesMethodOutsideOfModule:ERROR',
+            '-Xep:RandomCast:ERROR',
+            '-Xep:RandomModInteger:ERROR',
+            '-Xep:RectIntersectReturnValueIgnored:ERROR',
+            '-Xep:RequiredModifiers:ERROR',
+            '-Xep:RestrictedApiChecker:ERROR',
+            // '-Xep:ReturnValueIgnored:OFF',
+            // '-Xep:SelfAssignment:OFF',
+            '-Xep:SelfComparison:ERROR',
+            '-Xep:SelfEquals:ERROR',
+            '-Xep:ShouldHaveEvenArgs:ERROR',
+            '-Xep:SizeGreaterThanOrEqualsZero:ERROR',
+            '-Xep:StreamToString:ERROR',
+            '-Xep:StringBuilderInitWithChar:ERROR',
+            '-Xep:SubstringOfZero:ERROR',
+            '-Xep:SuppressWarningsDeprecated:ERROR',
+            '-Xep:TemporalAccessorGetChronoField:ERROR',
+            '-Xep:TestParametersNotInitialized:ERROR',
+            '-Xep:TheoryButNoTheories:ERROR',
+            '-Xep:ThrowIfUncheckedKnownChecked:ERROR',
+            // '-Xep:ThrowNull:OFF',
+            '-Xep:TreeToString:ERROR',
+            '-Xep:TruthSelfEquals:ERROR',
+            // '-Xep:TryFailThrowable:OFF',
+            '-Xep:TypeParameterQualifier:ERROR',
+            '-Xep:UnicodeDirectionalityCharacters:ERROR',
+            // '-Xep:UnicodeInCode:OFF',
+            '-Xep:UnnecessaryCheckNotNull:ERROR',
+            '-Xep:UnnecessaryTypeArgument:ERROR',
+            '-Xep:UnsafeWildcard:ERROR',
+            '-Xep:UnusedAnonymousClass:ERROR',
+            '-Xep:UnusedCollectionModifiedInPlace:ERROR',
+            '-Xep:VarTypeName:ERROR',
+            '-Xep:WrongOneof:ERROR',
+            '-Xep:XorPower:ERROR',
+            '-Xep:ZoneIdOfZ:ERROR',
+
+            // On by Default : WARNING
+
+            // '-Xep:AlmostJavadoc:OFF',
+            // '-Xep:AlreadyChecked:OFF',
+            // '-Xep:AmbiguousMethodReference:OFF',
+            '-Xep:AnnotateFormatMethod:WARN',
+            // '-Xep:ArgumentSelectionDefectChecker:OFF',
+            // '-Xep:ArrayAsKeyOfSetOrMap:OFF',
+            '-Xep:AssertEqualsArgumentOrderChecker:WARN',
+            '-Xep:AssertThrowsMultipleStatements:WARN',
+            // '-Xep:AssertionFailureIgnored:OFF',
+            '-Xep:AssistedInjectAndInjectOnSameConstructor:WARN',
+            '-Xep:AutoValueFinalMethods:WARN',
+            '-Xep:AutoValueImmutableFields:WARN',
+            '-Xep:AutoValueSubclassLeaked:WARN',
+            '-Xep:BadComparable:WARN',
+            // '-Xep:BadImport:OFF',
+            // '-Xep:BadInstanceof:OFF',
+            '-Xep:BareDotMetacharacter:WARN',
+            '-Xep:BigDecimalEquals:WARN',
+            '-Xep:BigDecimalLiteralDouble:WARN',
+            // '-Xep:BoxedPrimitiveConstructor:OFF', // we have forbiddenapis for that
+            '-Xep:BugPatternNaming:WARN',
+            // '-Xep:ByteBufferBackingArray:OFF',
+            '-Xep:CacheLoaderNull:WARN',
+            '-Xep:CanonicalDuration:WARN',
+            // '-Xep:CatchAndPrintStackTrace:OFF',
+            // '-Xep:CatchFail:OFF',
+            '-Xep:ChainedAssertionLosesContext:WARN',
+            // '-Xep:CharacterGetNumericValue:OFF',
+            // '-Xep:ClassCanBeStatic:OFF',
+            '-Xep:ClassNewInstance:WARN',
+            '-Xep:CloseableProvides:WARN',
+            // '-Xep:CollectionUndefinedEquality:OFF',
+            '-Xep:CollectorShouldNotUseState:WARN',
+            '-Xep:ComparableAndComparator:WARN',
+            '-Xep:CompareToZero:WARN',
+            // '-Xep:ComplexBooleanConstant:OFF',
+            '-Xep:DateChecker:WARN',
+            '-Xep:DateFormatConstant:WARN',
+            '-Xep:DefaultCharset:WARN',
+            // '-Xep:DefaultPackage:OFF',
+            '-Xep:DeprecatedVariable:WARN',
+            '-Xep:DirectInvocationOnMock:WARN',
+            '-Xep:DistinctVarargsChecker:WARN',
+            // '-Xep:DoNotCallSuggester:OFF',
+            '-Xep:DoNotClaimAnnotations:WARN',
+            '-Xep:DoNotMockAutoValue:WARN',
+            // '-Xep:DoubleCheckedLocking:OFF',
+            '-Xep:EmptyBlockTag:WARN',
+            // '-Xep:EmptyCatch:OFF',
+            '-Xep:EmptySetMultibindingContributions:WARN',
+            // '-Xep:EqualsGetClass:OFF',
+            // '-Xep:EqualsIncompatibleType:OFF',
+            // '-Xep:EqualsUnsafeCast:OFF',
+            '-Xep:EqualsUsingHashCode:WARN',
+            '-Xep:ErroneousBitwiseExpression:WARN',
+            '-Xep:ErroneousThreadPoolConstructorChecker:WARN',
+            // '-Xep:EscapedEntity:OFF',
+            // '-Xep:ExtendingJUnitAssert:OFF',
+            // '-Xep:ExtendsObject:OFF',
+            // '-Xep:FallThrough:OFF',
+            // '-Xep:Finally:OFF',
+            '-Xep:FloatCast:WARN',
+            '-Xep:FloatingPointAssertionWithinEpsilon:WARN',
+            // '-Xep:FloatingPointLiteralPrecision:OFF',
+            '-Xep:FloggerArgumentToString:WARN',
+            '-Xep:FloggerStringConcatenation:WARN',
+            '-Xep:FragmentInjection:WARN',
+            '-Xep:FragmentNotInstantiable:WARN',
+            // '-Xep:FutureReturnValueIgnored:OFF',
+            '-Xep:GetClassOnEnum:WARN',
+            // '-Xep:HidingField:OFF',
+            // '-Xep:IdentityHashMapUsage:OFF',
+            '-Xep:ImmutableAnnotationChecker:WARN',
+            // '-Xep:ImmutableEnumChecker:OFF',
+            // '-Xep:InconsistentCapitalization:OFF',
+            // '-Xep:InconsistentHashCode:OFF',
+            '-Xep:IncorrectMainMethod:WARN',
+            '-Xep:IncrementInForLoopAndHeader:WARN',
+            '-Xep:InheritDoc:WARN',
+            '-Xep:InjectInvalidTargetingOnScopingAnnotation:WARN',
+            '-Xep:InjectOnConstructorOfAbstractClass:WARN',
+            '-Xep:InjectScopeAnnotationOnInterfaceOrAbstractClass:WARN',
+            '-Xep:InjectedConstructorAnnotations:WARN',
+            // '-Xep:InlineFormatString:OFF',
+            '-Xep:InlineMeInliner:WARN',
+            // '-Xep:InlineMeSuggester:OFF',
+            // '-Xep:InputStreamSlowMultibyteRead:OFF',
+            '-Xep:InstanceOfAndCastMatchWrongType:WARN',
+            // '-Xep:IntLongMath:OFF',
+            // '-Xep:InvalidBlockTag:OFF',
+            // '-Xep:InvalidInlineTag:OFF',
+            '-Xep:InvalidLink:WARN',
+            // '-Xep:InvalidParam:OFF',
+            '-Xep:InvalidThrows:WARN',
+            '-Xep:InvalidThrowsLink:WARN',
+            '-Xep:IterableAndIterator:WARN',
+            '-Xep:JUnit3FloatingPointComparisonWithoutDelta:WARN',
+            '-Xep:JUnit4ClassUsedInJUnit3:WARN',
+            '-Xep:JUnitAmbiguousTestClass:WARN',
+            '-Xep:JavaDurationGetSecondsGetNano:WARN',
+            '-Xep:JavaDurationWithNanos:WARN',
+            '-Xep:JavaDurationWithSeconds:WARN',
+            '-Xep:JavaInstantGetSecondsGetNano:WARN',
+            // '-Xep:JavaLangClash:OFF',
+            '-Xep:JavaLocalDateTimeGetNano:WARN',
+            '-Xep:JavaLocalTimeGetNano:WARN',
+            '-Xep:JavaPeriodGetDays:WARN',
+            '-Xep:JavaTimeDefaultTimeZone:WARN',
+            // '-Xep:JavaUtilDate:OFF',
+            '-Xep:JavaxInjectOnFinalField:WARN',
+            // '-Xep:JdkObsolete:OFF',
+            '-Xep:JodaConstructors:WARN',
+            '-Xep:JodaDateTimeConstants:WARN',
+            '-Xep:JodaDurationWithMillis:WARN',
+            '-Xep:JodaInstantWithMillis:WARN',
+            '-Xep:JodaNewPeriod:WARN',
+            '-Xep:JodaPlusMinusLong:WARN',
+            '-Xep:JodaTimeConverterManager:WARN',
+            '-Xep:JodaWithDurationAddedLong:WARN',
+            '-Xep:LiteEnumValueOf:WARN',
+            '-Xep:LiteProtoToString:WARN',
+            // '-Xep:LockNotBeforeTry:OFF',
+            // '-Xep:LogicalAssignment:OFF',
+            // '-Xep:LongDoubleConversion:OFF',
+            '-Xep:LongFloatConversion:WARN',
+            '-Xep:LoopOverCharArray:WARN',
+            '-Xep:MalformedInlineTag:WARN',
+            // '-Xep:MathAbsoluteRandom:OFF',
+            '-Xep:MemoizeConstantVisitorStateLookups:WARN',
+            '-Xep:MissingCasesInEnumSwitch:WARN',
+            // '-Xep:MissingFail:OFF',
+            '-Xep:MissingImplementsComparable:WARN',
+            // '-Xep:MissingOverride:OFF',
+            // '-Xep:MissingSummary:OFF',
+            // '-Xep:MixedMutabilityReturnType:OFF',
+            '-Xep:MockNotUsedInProduction:WARN',
+            // '-Xep:ModifiedButNotUsed:OFF',
+            '-Xep:ModifyCollectionInEnhancedForLoop:WARN',
+            '-Xep:ModifySourceCollectionInStream:WARN',
+            '-Xep:MultipleParallelOrSequentialCalls:WARN',
+            '-Xep:MultipleUnaryOperatorsInMethodCall:WARN',
+            // '-Xep:MutablePublicArray:OFF',
+            '-Xep:NarrowCalculation:WARN',
+            // '-Xep:NarrowingCompoundAssignment:OFF',
+            '-Xep:NegativeCharLiteral:WARN',
+            '-Xep:NestedInstanceOfConditions:WARN',
+            // '-Xep:NonAtomicVolatileUpdate:OFF',
+            // '-Xep:NonCanonicalType:OFF',
+            '-Xep:NonOverridingEquals:WARN',
+            '-Xep:NullOptional:WARN',
+            '-Xep:NullableConstructor:WARN',
+            '-Xep:NullablePrimitive:WARN',
+            '-Xep:NullablePrimitiveArray:WARN',
+            '-Xep:NullableVoid:WARN',
+            '-Xep:ObjectEqualsForPrimitives:WARN',
+            // '-Xep:ObjectToString:OFF',
+            // '-Xep:ObjectsHashCodePrimitive:OFF',
+            // '-Xep:OperatorPrecedence:OFF',
+            '-Xep:OptionalMapToOptional:WARN',
+            '-Xep:OptionalNotPresent:WARN',
+            '-Xep:OrphanedFormatString:WARN',
+            '-Xep:OutlineNone:WARN',
+            '-Xep:OverrideThrowableToString:WARN',
+            '-Xep:Overrides:WARN',
+            '-Xep:OverridesGuiceInjectableMethod:WARN',
+            '-Xep:ParameterName:WARN',
+            '-Xep:PreconditionsCheckNotNullRepeated:WARN',
+            '-Xep:PrimitiveAtomicReference:WARN',
+            // '-Xep:ProtectedMembersInFinalClass:OFF',
+            '-Xep:ProtoDurationGetSecondsGetNano:WARN',
+            '-Xep:ProtoRedundantSet:WARN',
+            '-Xep:ProtoTimestampGetSecondsGetNano:WARN',
+            '-Xep:QualifierOrScopeOnInjectMethod:WARN',
+            '-Xep:ReachabilityFenceUsage:WARN',
+            // '-Xep:ReferenceEquality:OFF',
+            '-Xep:RethrowReflectiveOperationExceptionAsLinkageError:WARN',
+            '-Xep:ReturnFromVoid:WARN',
+            '-Xep:RobolectricShadowDirectlyOn:WARN',
+            '-Xep:RxReturnValueIgnored:WARN',
+            // '-Xep:SameNameButDifferent:OFF',
+            '-Xep:SelfAlwaysReturnsThis:WARN',
+            // '-Xep:ShortCircuitBoolean:OFF',
+            // '-Xep:StaticAssignmentInConstructor:OFF',
+            // '-Xep:StaticAssignmentOfThrowable:OFF',
+            // '-Xep:StaticGuardedByInstance:OFF',
+            '-Xep:StaticMockMember:WARN',
+            // '-Xep:StreamResourceLeak:OFF',
+            '-Xep:StreamToIterable:WARN',
             '-Xep:StringSplitter:OFF',
-            '-Xep:SynchronizeOnNonFinalField:OFF',
-            '-Xep:ThreadJoinLoop:OFF',
-            '-Xep:ThreadLocalUsage:OFF',
-            '-Xep:ThreadPriorityCheck:OFF',
-            '-Xep:ThrowNull:OFF',
-            '-Xep:ToStringReturnsNull:OFF',
-            '-Xep:TryFailThrowable:OFF',
-            '-Xep:TypeParameterShadowing:OFF',
-            '-Xep:TypeParameterUnusedInFormals:OFF',
-            '-Xep:UndefinedEquals:OFF',
-            '-Xep:UnnecessaryLongToIntConversion:OFF',
-            '-Xep:UnusedTypeParameter:OFF',
-            '-Xep:UnicodeInCode:OFF',
-            '-Xep:UnescapedEntity:OFF',
-            '-Xep:UnicodeEscape:OFF',
-            '-Xep:UnnecessaryLambda:OFF',
-            '-Xep:UnnecessaryParentheses:OFF',
-            '-Xep:UnsynchronizedOverridesSynchronized:OFF',
-            '-Xep:UnusedMethod:OFF',
-            '-Xep:UnusedVariable:OFF',
-            '-Xep:UseCorrectAssertInTests:OFF',
-            '-Xep:WaitNotInLoop:OFF',
+            '-Xep:SwigMemoryLeak:WARN',
+            // '-Xep:SynchronizeOnNonFinalField:OFF',
+            // '-Xep:ThreadJoinLoop:OFF',
+            // '-Xep:ThreadLocalUsage:OFF',
+            // '-Xep:ThreadPriorityCheck:OFF',
+            '-Xep:ThreeLetterTimeZoneID:WARN',
+            '-Xep:TimeUnitConversionChecker:WARN',
+            // '-Xep:ToStringReturnsNull:OFF',
+            '-Xep:TruthAssertExpected:WARN',
+            '-Xep:TruthConstantAsserts:WARN',
+            '-Xep:TruthGetOrDefault:WARN',
+            '-Xep:TruthIncompatibleType:WARN',

Review Comment:
   We don't use the Truth library, could turn these off



##########
gradle/validation/error-prone.gradle:
##########
@@ -68,119 +68,420 @@ allprojects { prj ->
 
         options.errorprone.disableWarningsInGeneratedCode = true
         options.errorprone.errorproneArgs = [
+            '-XepDisableAllChecks', // only enable specific checks
             '-XepAllErrorsAsWarnings', // warnings still fail build by default, but allows usage of -Pjavac.failOnWarnings=false
-            '-Xep:InlineMeSuggester:OFF', // We don't use this annotation
 
-            // test
-            '-Xep:AlmostJavadoc:OFF',
-            '-Xep:AlreadyChecked:OFF',
-            '-Xep:AmbiguousMethodReference:OFF',
-            '-Xep:ArgumentSelectionDefectChecker:OFF',
-            '-Xep:ArrayAsKeyOfSetOrMap:OFF',
-            '-Xep:ArrayEquals:OFF',
-            '-Xep:ArrayHashCode:OFF',
-            '-Xep:ArrayToString:OFF',
-            '-Xep:AssertionFailureIgnored:OFF',
-            '-Xep:BadImport:OFF',
-            '-Xep:BadInstanceof:OFF',
-            '-Xep:BadShiftAmount:OFF',
-            '-Xep:BoxedPrimitiveConstructor:OFF', // we have forbiddenapis for that
-            '-Xep:ByteBufferBackingArray:OFF',
-            '-Xep:CanIgnoreReturnValueSuggester:OFF',
-            '-Xep:CatchAndPrintStackTrace:OFF',
-            '-Xep:CatchFail:OFF',
-            '-Xep:CharacterGetNumericValue:OFF',
-            '-Xep:ClassCanBeStatic:OFF',
-            '-Xep:CollectionIncompatibleType:OFF',
-            '-Xep:CollectionUndefinedEquality:OFF',
-            '-Xep:ComparableType:OFF',
-            '-Xep:ComplexBooleanConstant:OFF',
-            '-Xep:DefaultPackage:OFF',
-            '-Xep:DoNotCallSuggester:OFF',
-            '-Xep:DoNotCall:OFF',
-            '-Xep:DoubleBraceInitialization:OFF',
-            '-Xep:DoubleCheckedLocking:OFF',
-            '-Xep:EmptyCatch:OFF',
-            '-Xep:EmptyTopLevelDeclaration:OFF',
-            '-Xep:EqualsGetClass:OFF',
-            '-Xep:EqualsIncompatibleType:OFF',
-            '-Xep:EqualsUnsafeCast:OFF',
-            '-Xep:EscapedEntity:OFF',
-            '-Xep:ExtendingJUnitAssert:OFF',
-            '-Xep:ExtendsObject:OFF',
-            '-Xep:FallThrough:OFF',
-            '-Xep:Finally:OFF',
-            '-Xep:FloatingPointLiteralPrecision:OFF',
-            '-Xep:FormatString:OFF',
-            '-Xep:FutureReturnValueIgnored:OFF',
-            '-Xep:HidingField:OFF',
-            '-Xep:IdentityBinaryExpression:OFF',
-            '-Xep:IdentityHashMapUsage:OFF',
-            '-Xep:ImmutableEnumChecker:OFF',
-            '-Xep:InconsistentCapitalization:OFF',
-            '-Xep:InconsistentHashCode:OFF',
-            '-Xep:InfiniteRecursion:OFF',
-            '-Xep:InlineFormatString:OFF',
-            '-Xep:InputStreamSlowMultibyteRead:OFF',
-            '-Xep:IntLongMath:OFF',
-            '-Xep:InvalidBlockTag:OFF',
-            '-Xep:InvalidInlineTag:OFF',
-            '-Xep:InvalidParam:OFF',
-            '-Xep:InvalidPatternSyntax:OFF',
-            '-Xep:JUnit4TestNotRun:OFF',
-            '-Xep:JavaLangClash:OFF',
-            '-Xep:JavaUtilDate:OFF',
-            '-Xep:JdkObsolete:OFF',
-            '-Xep:LockNotBeforeTry:OFF',
-            '-Xep:LogicalAssignment:OFF',
-            '-Xep:LongDoubleConversion:OFF',
-            '-Xep:MathAbsoluteRandom:OFF',
-            '-Xep:MissingFail:OFF',
-            '-Xep:MissingOverride:OFF',
-            '-Xep:MissingSummary:OFF',
-            '-Xep:MisusedDayOfYear:OFF',
-            '-Xep:MixedMutabilityReturnType:OFF',
-            '-Xep:ModifiedButNotUsed:OFF',
-            '-Xep:MutablePublicArray:OFF',
-            '-Xep:NarrowingCompoundAssignment:OFF',
-            '-Xep:NonAtomicVolatileUpdate:OFF',
-            '-Xep:NonCanonicalType:OFF',
-            '-Xep:ObjectToString:OFF',
-            '-Xep:ObjectsHashCodePrimitive:OFF',
-            '-Xep:OperatorPrecedence:OFF',
-            '-Xep:ProtectedMembersInFinalClass:OFF',
-            '-Xep:ReferenceEquality:OFF',
-            '-Xep:ReturnValueIgnored:OFF',
-            '-Xep:SameNameButDifferent:OFF',
-            '-Xep:SelfAssignment:OFF',
-            '-Xep:ShortCircuitBoolean:OFF',
-            '-Xep:StaticAssignmentInConstructor:OFF',
-            '-Xep:StaticAssignmentOfThrowable:OFF',
-            '-Xep:StaticGuardedByInstance:OFF',
-            '-Xep:StreamResourceLeak:OFF',
+            // List of enabled/disabled checks
+            // Please keep this synced with https://errorprone.info/bugpatterns when upgrading!
+
+            // On by Default : ERROR
+
+            '-Xep:AlwaysThrows:ERROR',
+            '-Xep:AndroidInjectionBeforeSuper:ERROR',
+            // '-Xep:ArrayEquals:OFF',
+            '-Xep:ArrayFillIncompatibleType:ERROR',
+            // '-Xep:ArrayHashCode:OFF',
+            // '-Xep:ArrayToString:OFF',
+            '-Xep:ArraysAsListPrimitiveArray:ERROR',
+            '-Xep:AsyncCallableReturnsNull:ERROR',
+            '-Xep:AsyncFunctionReturnsNull:ERROR',
+            '-Xep:AutoValueBuilderDefaultsInConstructor:ERROR',
+            '-Xep:AutoValueConstructorOrderChecker:ERROR',
+            '-Xep:BadAnnotationImplementation:ERROR',
+            // '-Xep:BadShiftAmount:OFF',
+            '-Xep:BanJNDI:ERROR',
+            '-Xep:BoxedPrimitiveEquality:ERROR',
+            '-Xep:BundleDeserializationCast:ERROR',
+            '-Xep:ChainingConstructorIgnoresParameter:ERROR',
+            '-Xep:CheckNotNullMultipleTimes:ERROR',
+            '-Xep:CheckReturnValue:ERROR',
+            '-Xep:CollectionToArraySafeParameter:ERROR',
+            // '-Xep:ComparableType:OFF',
+            '-Xep:ComparingThisWithNull:ERROR',
+            '-Xep:ComparisonOutOfRange:ERROR',
+            '-Xep:CompatibleWithAnnotationMisuse:ERROR',
+            '-Xep:CompileTimeConstant:ERROR',
+            '-Xep:ComputeIfAbsentAmbiguousReference:ERROR',
+            '-Xep:ConditionalExpressionNumericPromotion:ERROR',
+            '-Xep:ConstantOverflow:ERROR',
+            '-Xep:DaggerProvidesNull:ERROR',
+            '-Xep:DangerousLiteralNull:ERROR',
+            '-Xep:DeadException:ERROR',
+            '-Xep:DeadThread:ERROR',
+            '-Xep:DiscardedPostfixExpression:ERROR',
+            // '-Xep:DoNotCall:OFF',
+            '-Xep:DoNotMock:ERROR',
+            // '-Xep:DoubleBraceInitialization:OFF',
+            '-Xep:DuplicateMapKeys:ERROR',
+            '-Xep:DurationFrom:ERROR',
+            '-Xep:DurationGetTemporalUnit:ERROR',
+            '-Xep:DurationTemporalUnit:ERROR',
+            '-Xep:DurationToLongTimeUnit:ERROR',
+            // '-Xep:EmptyTopLevelDeclaration:OFF',
+            '-Xep:EqualsHashCode:ERROR',
+            '-Xep:EqualsNaN:ERROR',
+            '-Xep:EqualsNull:ERROR',
+            '-Xep:EqualsReference:ERROR',
+            '-Xep:EqualsWrongThing:ERROR',
+            '-Xep:FloggerFormatString:ERROR',
+            '-Xep:FloggerLogVarargs:ERROR',
+            '-Xep:FloggerSplitLogStatement:ERROR',
+            '-Xep:ForOverride:ERROR',
+            // '-Xep:FormatString:OFF',
+            '-Xep:FormatStringAnnotation:ERROR',
+            '-Xep:FromTemporalAccessor:ERROR',
+            '-Xep:FunctionalInterfaceMethodChanged:ERROR',
+            '-Xep:FuturesGetCheckedIllegalExceptionType:ERROR',
+            '-Xep:FuzzyEqualsShouldNotBeUsedInEqualsMethod:ERROR',
+            '-Xep:GetClassOnAnnotation:ERROR',
+            '-Xep:GetClassOnClass:ERROR',
+            '-Xep:GuardedBy:ERROR',
+            '-Xep:GuiceAssistedInjectScoping:ERROR',
+            '-Xep:GuiceAssistedParameters:ERROR',
+            '-Xep:GuiceInjectOnFinalField:ERROR',
+            '-Xep:HashtableContains:ERROR',
+            // '-Xep:IdentityBinaryExpression:OFF',
+            '-Xep:IdentityHashMapBoxing:ERROR',
+            '-Xep:IgnoredPureGetter:ERROR',
+            '-Xep:Immutable:ERROR',
+            '-Xep:Incomparable:ERROR',
+            '-Xep:IncompatibleArgumentType:ERROR',
+            '-Xep:IncompatibleModifiers:ERROR',
+            '-Xep:IndexOfChar:ERROR',
+            '-Xep:InexactVarargsConditional:ERROR',
+            // '-Xep:InfiniteRecursion:OFF',
+            '-Xep:InjectMoreThanOneScopeAnnotationOnClass:ERROR',
+            '-Xep:InjectOnMemberAndConstructor:ERROR',
+            '-Xep:InlineMeValidator:ERROR',
+            '-Xep:InstantTemporalUnit:ERROR',
+            '-Xep:InvalidJavaTimeConstant:ERROR',
+            // '-Xep:InvalidPatternSyntax:OFF',
+            '-Xep:InvalidTimeZoneID:ERROR',
+            '-Xep:InvalidZoneId:ERROR',
+            '-Xep:IsInstanceIncompatibleType:ERROR',
+            '-Xep:IsInstanceOfClass:ERROR',
+            '-Xep:IsLoggableTagLength:ERROR',
+            '-Xep:JUnit3TestNotRun:ERROR',
+            '-Xep:JUnit4ClassAnnotationNonStatic:ERROR',
+            '-Xep:JUnit4SetUpNotRun:ERROR',
+            '-Xep:JUnit4TearDownNotRun:ERROR',
+            //'-Xep:JUnit4TestNotRun:OFF',
+            '-Xep:JUnit4TestsNotRunWithinEnclosed:ERROR',
+            '-Xep:JUnitAssertSameCheck:ERROR',
+            '-Xep:JUnitParameterMethodNotFound:ERROR',
+            '-Xep:JavaxInjectOnAbstractMethod:ERROR',
+            '-Xep:JodaToSelf:ERROR',
+            '-Xep:LiteByteStringUtf8:ERROR',
+            '-Xep:LocalDateTemporalAmount:ERROR',
+            '-Xep:LockOnBoxedPrimitive:ERROR',
+            '-Xep:LoopConditionChecker:ERROR',
+            '-Xep:LossyPrimitiveCompare:ERROR',
+            '-Xep:MathRoundIntLong:ERROR',
+            '-Xep:MislabeledAndroidString:ERROR',
+            '-Xep:MisplacedScopeAnnotations:ERROR',
+            '-Xep:MissingSuperCall:ERROR',
+            '-Xep:MissingTestCall:ERROR',
+            // '-Xep:MisusedDayOfYear:OFF',
+            '-Xep:MisusedWeekYear:ERROR',
+            '-Xep:MixedDescriptors:ERROR',
+            '-Xep:MockitoUsage:ERROR',
+            '-Xep:ModifyingCollectionWithItself:ERROR',
+            '-Xep:MoreThanOneInjectableConstructor:ERROR',
+            '-Xep:MustBeClosedChecker:ERROR',
+            '-Xep:NCopiesOfChar:ERROR',
+            '-Xep:NoCanIgnoreReturnValueOnClasses:ERROR',
+            '-Xep:NonCanonicalStaticImport:ERROR',
+            '-Xep:NonFinalCompileTimeConstant:ERROR',
+            '-Xep:NonRuntimeAnnotation:ERROR',
+            '-Xep:NullArgumentForNonNullParameter:ERROR',
+            '-Xep:NullTernary:ERROR',
+            '-Xep:NullableOnContainingClass:ERROR',
+            '-Xep:OptionalEquality:ERROR',
+            '-Xep:OptionalMapUnusedValue:ERROR',
+            '-Xep:OptionalOfRedundantMethod:ERROR',
+            '-Xep:OverlappingQualifierAndScopeAnnotation:ERROR',
+            '-Xep:OverridesJavaxInjectableMethod:ERROR',
+            '-Xep:PackageInfo:ERROR',
+            '-Xep:ParametersButNotParameterized:ERROR',
+            '-Xep:ParcelableCreator:ERROR',
+            '-Xep:PeriodFrom:ERROR',
+            '-Xep:PeriodGetTemporalUnit:ERROR',
+            '-Xep:PeriodTimeMath:ERROR',
+            '-Xep:PreconditionsInvalidPlaceholder:ERROR',
+            '-Xep:PrivateSecurityContractProtoAccess:ERROR',
+            '-Xep:ProtoBuilderReturnValueIgnored:ERROR',
+            '-Xep:ProtoFieldNullComparison:ERROR',
+            '-Xep:ProtoStringFieldReferenceEquality:ERROR',
+            '-Xep:ProtoTruthMixedDescriptors:ERROR',
+            '-Xep:ProtocolBufferOrdinal:ERROR',
+            '-Xep:ProvidesMethodOutsideOfModule:ERROR',
+            '-Xep:RandomCast:ERROR',
+            '-Xep:RandomModInteger:ERROR',
+            '-Xep:RectIntersectReturnValueIgnored:ERROR',
+            '-Xep:RequiredModifiers:ERROR',
+            '-Xep:RestrictedApiChecker:ERROR',
+            // '-Xep:ReturnValueIgnored:OFF',
+            // '-Xep:SelfAssignment:OFF',
+            '-Xep:SelfComparison:ERROR',
+            '-Xep:SelfEquals:ERROR',
+            '-Xep:ShouldHaveEvenArgs:ERROR',
+            '-Xep:SizeGreaterThanOrEqualsZero:ERROR',
+            '-Xep:StreamToString:ERROR',
+            '-Xep:StringBuilderInitWithChar:ERROR',
+            '-Xep:SubstringOfZero:ERROR',
+            '-Xep:SuppressWarningsDeprecated:ERROR',
+            '-Xep:TemporalAccessorGetChronoField:ERROR',
+            '-Xep:TestParametersNotInitialized:ERROR',
+            '-Xep:TheoryButNoTheories:ERROR',
+            '-Xep:ThrowIfUncheckedKnownChecked:ERROR',
+            // '-Xep:ThrowNull:OFF',
+            '-Xep:TreeToString:ERROR',
+            '-Xep:TruthSelfEquals:ERROR',
+            // '-Xep:TryFailThrowable:OFF',
+            '-Xep:TypeParameterQualifier:ERROR',
+            '-Xep:UnicodeDirectionalityCharacters:ERROR',
+            // '-Xep:UnicodeInCode:OFF',
+            '-Xep:UnnecessaryCheckNotNull:ERROR',
+            '-Xep:UnnecessaryTypeArgument:ERROR',
+            '-Xep:UnsafeWildcard:ERROR',
+            '-Xep:UnusedAnonymousClass:ERROR',
+            '-Xep:UnusedCollectionModifiedInPlace:ERROR',
+            '-Xep:VarTypeName:ERROR',
+            '-Xep:WrongOneof:ERROR',
+            '-Xep:XorPower:ERROR',
+            '-Xep:ZoneIdOfZ:ERROR',
+
+            // On by Default : WARNING
+
+            // '-Xep:AlmostJavadoc:OFF',
+            // '-Xep:AlreadyChecked:OFF',
+            // '-Xep:AmbiguousMethodReference:OFF',
+            '-Xep:AnnotateFormatMethod:WARN',
+            // '-Xep:ArgumentSelectionDefectChecker:OFF',
+            // '-Xep:ArrayAsKeyOfSetOrMap:OFF',
+            '-Xep:AssertEqualsArgumentOrderChecker:WARN',
+            '-Xep:AssertThrowsMultipleStatements:WARN',
+            // '-Xep:AssertionFailureIgnored:OFF',
+            '-Xep:AssistedInjectAndInjectOnSameConstructor:WARN',
+            '-Xep:AutoValueFinalMethods:WARN',
+            '-Xep:AutoValueImmutableFields:WARN',
+            '-Xep:AutoValueSubclassLeaked:WARN',
+            '-Xep:BadComparable:WARN',
+            // '-Xep:BadImport:OFF',
+            // '-Xep:BadInstanceof:OFF',
+            '-Xep:BareDotMetacharacter:WARN',
+            '-Xep:BigDecimalEquals:WARN',
+            '-Xep:BigDecimalLiteralDouble:WARN',
+            // '-Xep:BoxedPrimitiveConstructor:OFF', // we have forbiddenapis for that
+            '-Xep:BugPatternNaming:WARN',
+            // '-Xep:ByteBufferBackingArray:OFF',
+            '-Xep:CacheLoaderNull:WARN',
+            '-Xep:CanonicalDuration:WARN',
+            // '-Xep:CatchAndPrintStackTrace:OFF',
+            // '-Xep:CatchFail:OFF',
+            '-Xep:ChainedAssertionLosesContext:WARN',
+            // '-Xep:CharacterGetNumericValue:OFF',
+            // '-Xep:ClassCanBeStatic:OFF',
+            '-Xep:ClassNewInstance:WARN',
+            '-Xep:CloseableProvides:WARN',
+            // '-Xep:CollectionUndefinedEquality:OFF',
+            '-Xep:CollectorShouldNotUseState:WARN',
+            '-Xep:ComparableAndComparator:WARN',
+            '-Xep:CompareToZero:WARN',
+            // '-Xep:ComplexBooleanConstant:OFF',
+            '-Xep:DateChecker:WARN',
+            '-Xep:DateFormatConstant:WARN',
+            '-Xep:DefaultCharset:WARN',
+            // '-Xep:DefaultPackage:OFF',
+            '-Xep:DeprecatedVariable:WARN',
+            '-Xep:DirectInvocationOnMock:WARN',
+            '-Xep:DistinctVarargsChecker:WARN',
+            // '-Xep:DoNotCallSuggester:OFF',
+            '-Xep:DoNotClaimAnnotations:WARN',
+            '-Xep:DoNotMockAutoValue:WARN',
+            // '-Xep:DoubleCheckedLocking:OFF',
+            '-Xep:EmptyBlockTag:WARN',
+            // '-Xep:EmptyCatch:OFF',
+            '-Xep:EmptySetMultibindingContributions:WARN',
+            // '-Xep:EqualsGetClass:OFF',
+            // '-Xep:EqualsIncompatibleType:OFF',
+            // '-Xep:EqualsUnsafeCast:OFF',
+            '-Xep:EqualsUsingHashCode:WARN',
+            '-Xep:ErroneousBitwiseExpression:WARN',
+            '-Xep:ErroneousThreadPoolConstructorChecker:WARN',
+            // '-Xep:EscapedEntity:OFF',
+            // '-Xep:ExtendingJUnitAssert:OFF',
+            // '-Xep:ExtendsObject:OFF',
+            // '-Xep:FallThrough:OFF',
+            // '-Xep:Finally:OFF',
+            '-Xep:FloatCast:WARN',
+            '-Xep:FloatingPointAssertionWithinEpsilon:WARN',
+            // '-Xep:FloatingPointLiteralPrecision:OFF',
+            '-Xep:FloggerArgumentToString:WARN',
+            '-Xep:FloggerStringConcatenation:WARN',
+            '-Xep:FragmentInjection:WARN',
+            '-Xep:FragmentNotInstantiable:WARN',
+            // '-Xep:FutureReturnValueIgnored:OFF',
+            '-Xep:GetClassOnEnum:WARN',
+            // '-Xep:HidingField:OFF',
+            // '-Xep:IdentityHashMapUsage:OFF',
+            '-Xep:ImmutableAnnotationChecker:WARN',
+            // '-Xep:ImmutableEnumChecker:OFF',
+            // '-Xep:InconsistentCapitalization:OFF',
+            // '-Xep:InconsistentHashCode:OFF',
+            '-Xep:IncorrectMainMethod:WARN',
+            '-Xep:IncrementInForLoopAndHeader:WARN',
+            '-Xep:InheritDoc:WARN',
+            '-Xep:InjectInvalidTargetingOnScopingAnnotation:WARN',
+            '-Xep:InjectOnConstructorOfAbstractClass:WARN',
+            '-Xep:InjectScopeAnnotationOnInterfaceOrAbstractClass:WARN',
+            '-Xep:InjectedConstructorAnnotations:WARN',
+            // '-Xep:InlineFormatString:OFF',
+            '-Xep:InlineMeInliner:WARN',
+            // '-Xep:InlineMeSuggester:OFF',
+            // '-Xep:InputStreamSlowMultibyteRead:OFF',
+            '-Xep:InstanceOfAndCastMatchWrongType:WARN',
+            // '-Xep:IntLongMath:OFF',
+            // '-Xep:InvalidBlockTag:OFF',
+            // '-Xep:InvalidInlineTag:OFF',
+            '-Xep:InvalidLink:WARN',
+            // '-Xep:InvalidParam:OFF',
+            '-Xep:InvalidThrows:WARN',
+            '-Xep:InvalidThrowsLink:WARN',
+            '-Xep:IterableAndIterator:WARN',
+            '-Xep:JUnit3FloatingPointComparisonWithoutDelta:WARN',
+            '-Xep:JUnit4ClassUsedInJUnit3:WARN',
+            '-Xep:JUnitAmbiguousTestClass:WARN',
+            '-Xep:JavaDurationGetSecondsGetNano:WARN',
+            '-Xep:JavaDurationWithNanos:WARN',
+            '-Xep:JavaDurationWithSeconds:WARN',
+            '-Xep:JavaInstantGetSecondsGetNano:WARN',
+            // '-Xep:JavaLangClash:OFF',
+            '-Xep:JavaLocalDateTimeGetNano:WARN',
+            '-Xep:JavaLocalTimeGetNano:WARN',
+            '-Xep:JavaPeriodGetDays:WARN',
+            '-Xep:JavaTimeDefaultTimeZone:WARN',
+            // '-Xep:JavaUtilDate:OFF',
+            '-Xep:JavaxInjectOnFinalField:WARN',
+            // '-Xep:JdkObsolete:OFF',
+            '-Xep:JodaConstructors:WARN',
+            '-Xep:JodaDateTimeConstants:WARN',
+            '-Xep:JodaDurationWithMillis:WARN',
+            '-Xep:JodaInstantWithMillis:WARN',
+            '-Xep:JodaNewPeriod:WARN',
+            '-Xep:JodaPlusMinusLong:WARN',
+            '-Xep:JodaTimeConverterManager:WARN',
+            '-Xep:JodaWithDurationAddedLong:WARN',
+            '-Xep:LiteEnumValueOf:WARN',
+            '-Xep:LiteProtoToString:WARN',
+            // '-Xep:LockNotBeforeTry:OFF',
+            // '-Xep:LogicalAssignment:OFF',
+            // '-Xep:LongDoubleConversion:OFF',
+            '-Xep:LongFloatConversion:WARN',
+            '-Xep:LoopOverCharArray:WARN',
+            '-Xep:MalformedInlineTag:WARN',
+            // '-Xep:MathAbsoluteRandom:OFF',
+            '-Xep:MemoizeConstantVisitorStateLookups:WARN',
+            '-Xep:MissingCasesInEnumSwitch:WARN',
+            // '-Xep:MissingFail:OFF',
+            '-Xep:MissingImplementsComparable:WARN',
+            // '-Xep:MissingOverride:OFF',
+            // '-Xep:MissingSummary:OFF',
+            // '-Xep:MixedMutabilityReturnType:OFF',
+            '-Xep:MockNotUsedInProduction:WARN',
+            // '-Xep:ModifiedButNotUsed:OFF',
+            '-Xep:ModifyCollectionInEnhancedForLoop:WARN',
+            '-Xep:ModifySourceCollectionInStream:WARN',
+            '-Xep:MultipleParallelOrSequentialCalls:WARN',
+            '-Xep:MultipleUnaryOperatorsInMethodCall:WARN',
+            // '-Xep:MutablePublicArray:OFF',
+            '-Xep:NarrowCalculation:WARN',
+            // '-Xep:NarrowingCompoundAssignment:OFF',
+            '-Xep:NegativeCharLiteral:WARN',
+            '-Xep:NestedInstanceOfConditions:WARN',
+            // '-Xep:NonAtomicVolatileUpdate:OFF',
+            // '-Xep:NonCanonicalType:OFF',
+            '-Xep:NonOverridingEquals:WARN',
+            '-Xep:NullOptional:WARN',
+            '-Xep:NullableConstructor:WARN',
+            '-Xep:NullablePrimitive:WARN',
+            '-Xep:NullablePrimitiveArray:WARN',
+            '-Xep:NullableVoid:WARN',
+            '-Xep:ObjectEqualsForPrimitives:WARN',
+            // '-Xep:ObjectToString:OFF',
+            // '-Xep:ObjectsHashCodePrimitive:OFF',
+            // '-Xep:OperatorPrecedence:OFF',
+            '-Xep:OptionalMapToOptional:WARN',
+            '-Xep:OptionalNotPresent:WARN',
+            '-Xep:OrphanedFormatString:WARN',
+            '-Xep:OutlineNone:WARN',
+            '-Xep:OverrideThrowableToString:WARN',
+            '-Xep:Overrides:WARN',
+            '-Xep:OverridesGuiceInjectableMethod:WARN',
+            '-Xep:ParameterName:WARN',
+            '-Xep:PreconditionsCheckNotNullRepeated:WARN',
+            '-Xep:PrimitiveAtomicReference:WARN',
+            // '-Xep:ProtectedMembersInFinalClass:OFF',
+            '-Xep:ProtoDurationGetSecondsGetNano:WARN',
+            '-Xep:ProtoRedundantSet:WARN',
+            '-Xep:ProtoTimestampGetSecondsGetNano:WARN',
+            '-Xep:QualifierOrScopeOnInjectMethod:WARN',
+            '-Xep:ReachabilityFenceUsage:WARN',
+            // '-Xep:ReferenceEquality:OFF',
+            '-Xep:RethrowReflectiveOperationExceptionAsLinkageError:WARN',
+            '-Xep:ReturnFromVoid:WARN',
+            '-Xep:RobolectricShadowDirectlyOn:WARN',
+            '-Xep:RxReturnValueIgnored:WARN',
+            // '-Xep:SameNameButDifferent:OFF',
+            '-Xep:SelfAlwaysReturnsThis:WARN',
+            // '-Xep:ShortCircuitBoolean:OFF',
+            // '-Xep:StaticAssignmentInConstructor:OFF',
+            // '-Xep:StaticAssignmentOfThrowable:OFF',
+            // '-Xep:StaticGuardedByInstance:OFF',
+            '-Xep:StaticMockMember:WARN',
+            // '-Xep:StreamResourceLeak:OFF',
+            '-Xep:StreamToIterable:WARN',
             '-Xep:StringSplitter:OFF',
-            '-Xep:SynchronizeOnNonFinalField:OFF',
-            '-Xep:ThreadJoinLoop:OFF',
-            '-Xep:ThreadLocalUsage:OFF',
-            '-Xep:ThreadPriorityCheck:OFF',
-            '-Xep:ThrowNull:OFF',
-            '-Xep:ToStringReturnsNull:OFF',
-            '-Xep:TryFailThrowable:OFF',
-            '-Xep:TypeParameterShadowing:OFF',
-            '-Xep:TypeParameterUnusedInFormals:OFF',
-            '-Xep:UndefinedEquals:OFF',
-            '-Xep:UnnecessaryLongToIntConversion:OFF',
-            '-Xep:UnusedTypeParameter:OFF',
-            '-Xep:UnicodeInCode:OFF',
-            '-Xep:UnescapedEntity:OFF',
-            '-Xep:UnicodeEscape:OFF',
-            '-Xep:UnnecessaryLambda:OFF',
-            '-Xep:UnnecessaryParentheses:OFF',
-            '-Xep:UnsynchronizedOverridesSynchronized:OFF',
-            '-Xep:UnusedMethod:OFF',
-            '-Xep:UnusedVariable:OFF',
-            '-Xep:UseCorrectAssertInTests:OFF',
-            '-Xep:WaitNotInLoop:OFF',
+            '-Xep:SwigMemoryLeak:WARN',

Review Comment:
   We don't use SWIG, could turn this off?



##########
gradle/validation/error-prone.gradle:
##########
@@ -68,119 +68,420 @@ allprojects { prj ->
 
         options.errorprone.disableWarningsInGeneratedCode = true
         options.errorprone.errorproneArgs = [
+            '-XepDisableAllChecks', // only enable specific checks
             '-XepAllErrorsAsWarnings', // warnings still fail build by default, but allows usage of -Pjavac.failOnWarnings=false
-            '-Xep:InlineMeSuggester:OFF', // We don't use this annotation
 
-            // test
-            '-Xep:AlmostJavadoc:OFF',
-            '-Xep:AlreadyChecked:OFF',
-            '-Xep:AmbiguousMethodReference:OFF',
-            '-Xep:ArgumentSelectionDefectChecker:OFF',
-            '-Xep:ArrayAsKeyOfSetOrMap:OFF',
-            '-Xep:ArrayEquals:OFF',
-            '-Xep:ArrayHashCode:OFF',
-            '-Xep:ArrayToString:OFF',
-            '-Xep:AssertionFailureIgnored:OFF',
-            '-Xep:BadImport:OFF',
-            '-Xep:BadInstanceof:OFF',
-            '-Xep:BadShiftAmount:OFF',
-            '-Xep:BoxedPrimitiveConstructor:OFF', // we have forbiddenapis for that
-            '-Xep:ByteBufferBackingArray:OFF',
-            '-Xep:CanIgnoreReturnValueSuggester:OFF',
-            '-Xep:CatchAndPrintStackTrace:OFF',
-            '-Xep:CatchFail:OFF',
-            '-Xep:CharacterGetNumericValue:OFF',
-            '-Xep:ClassCanBeStatic:OFF',
-            '-Xep:CollectionIncompatibleType:OFF',
-            '-Xep:CollectionUndefinedEquality:OFF',
-            '-Xep:ComparableType:OFF',
-            '-Xep:ComplexBooleanConstant:OFF',
-            '-Xep:DefaultPackage:OFF',
-            '-Xep:DoNotCallSuggester:OFF',
-            '-Xep:DoNotCall:OFF',
-            '-Xep:DoubleBraceInitialization:OFF',
-            '-Xep:DoubleCheckedLocking:OFF',
-            '-Xep:EmptyCatch:OFF',
-            '-Xep:EmptyTopLevelDeclaration:OFF',
-            '-Xep:EqualsGetClass:OFF',
-            '-Xep:EqualsIncompatibleType:OFF',
-            '-Xep:EqualsUnsafeCast:OFF',
-            '-Xep:EscapedEntity:OFF',
-            '-Xep:ExtendingJUnitAssert:OFF',
-            '-Xep:ExtendsObject:OFF',
-            '-Xep:FallThrough:OFF',
-            '-Xep:Finally:OFF',
-            '-Xep:FloatingPointLiteralPrecision:OFF',
-            '-Xep:FormatString:OFF',
-            '-Xep:FutureReturnValueIgnored:OFF',
-            '-Xep:HidingField:OFF',
-            '-Xep:IdentityBinaryExpression:OFF',
-            '-Xep:IdentityHashMapUsage:OFF',
-            '-Xep:ImmutableEnumChecker:OFF',
-            '-Xep:InconsistentCapitalization:OFF',
-            '-Xep:InconsistentHashCode:OFF',
-            '-Xep:InfiniteRecursion:OFF',
-            '-Xep:InlineFormatString:OFF',
-            '-Xep:InputStreamSlowMultibyteRead:OFF',
-            '-Xep:IntLongMath:OFF',
-            '-Xep:InvalidBlockTag:OFF',
-            '-Xep:InvalidInlineTag:OFF',
-            '-Xep:InvalidParam:OFF',
-            '-Xep:InvalidPatternSyntax:OFF',
-            '-Xep:JUnit4TestNotRun:OFF',
-            '-Xep:JavaLangClash:OFF',
-            '-Xep:JavaUtilDate:OFF',
-            '-Xep:JdkObsolete:OFF',
-            '-Xep:LockNotBeforeTry:OFF',
-            '-Xep:LogicalAssignment:OFF',
-            '-Xep:LongDoubleConversion:OFF',
-            '-Xep:MathAbsoluteRandom:OFF',
-            '-Xep:MissingFail:OFF',
-            '-Xep:MissingOverride:OFF',
-            '-Xep:MissingSummary:OFF',
-            '-Xep:MisusedDayOfYear:OFF',
-            '-Xep:MixedMutabilityReturnType:OFF',
-            '-Xep:ModifiedButNotUsed:OFF',
-            '-Xep:MutablePublicArray:OFF',
-            '-Xep:NarrowingCompoundAssignment:OFF',
-            '-Xep:NonAtomicVolatileUpdate:OFF',
-            '-Xep:NonCanonicalType:OFF',
-            '-Xep:ObjectToString:OFF',
-            '-Xep:ObjectsHashCodePrimitive:OFF',
-            '-Xep:OperatorPrecedence:OFF',
-            '-Xep:ProtectedMembersInFinalClass:OFF',
-            '-Xep:ReferenceEquality:OFF',
-            '-Xep:ReturnValueIgnored:OFF',
-            '-Xep:SameNameButDifferent:OFF',
-            '-Xep:SelfAssignment:OFF',
-            '-Xep:ShortCircuitBoolean:OFF',
-            '-Xep:StaticAssignmentInConstructor:OFF',
-            '-Xep:StaticAssignmentOfThrowable:OFF',
-            '-Xep:StaticGuardedByInstance:OFF',
-            '-Xep:StreamResourceLeak:OFF',
+            // List of enabled/disabled checks
+            // Please keep this synced with https://errorprone.info/bugpatterns when upgrading!
+
+            // On by Default : ERROR
+
+            '-Xep:AlwaysThrows:ERROR',
+            '-Xep:AndroidInjectionBeforeSuper:ERROR',
+            // '-Xep:ArrayEquals:OFF',
+            '-Xep:ArrayFillIncompatibleType:ERROR',
+            // '-Xep:ArrayHashCode:OFF',
+            // '-Xep:ArrayToString:OFF',
+            '-Xep:ArraysAsListPrimitiveArray:ERROR',
+            '-Xep:AsyncCallableReturnsNull:ERROR',
+            '-Xep:AsyncFunctionReturnsNull:ERROR',
+            '-Xep:AutoValueBuilderDefaultsInConstructor:ERROR',
+            '-Xep:AutoValueConstructorOrderChecker:ERROR',
+            '-Xep:BadAnnotationImplementation:ERROR',
+            // '-Xep:BadShiftAmount:OFF',
+            '-Xep:BanJNDI:ERROR',
+            '-Xep:BoxedPrimitiveEquality:ERROR',
+            '-Xep:BundleDeserializationCast:ERROR',
+            '-Xep:ChainingConstructorIgnoresParameter:ERROR',
+            '-Xep:CheckNotNullMultipleTimes:ERROR',
+            '-Xep:CheckReturnValue:ERROR',
+            '-Xep:CollectionToArraySafeParameter:ERROR',
+            // '-Xep:ComparableType:OFF',
+            '-Xep:ComparingThisWithNull:ERROR',
+            '-Xep:ComparisonOutOfRange:ERROR',
+            '-Xep:CompatibleWithAnnotationMisuse:ERROR',
+            '-Xep:CompileTimeConstant:ERROR',
+            '-Xep:ComputeIfAbsentAmbiguousReference:ERROR',
+            '-Xep:ConditionalExpressionNumericPromotion:ERROR',
+            '-Xep:ConstantOverflow:ERROR',
+            '-Xep:DaggerProvidesNull:ERROR',
+            '-Xep:DangerousLiteralNull:ERROR',
+            '-Xep:DeadException:ERROR',
+            '-Xep:DeadThread:ERROR',
+            '-Xep:DiscardedPostfixExpression:ERROR',
+            // '-Xep:DoNotCall:OFF',
+            '-Xep:DoNotMock:ERROR',
+            // '-Xep:DoubleBraceInitialization:OFF',
+            '-Xep:DuplicateMapKeys:ERROR',
+            '-Xep:DurationFrom:ERROR',
+            '-Xep:DurationGetTemporalUnit:ERROR',
+            '-Xep:DurationTemporalUnit:ERROR',
+            '-Xep:DurationToLongTimeUnit:ERROR',
+            // '-Xep:EmptyTopLevelDeclaration:OFF',
+            '-Xep:EqualsHashCode:ERROR',
+            '-Xep:EqualsNaN:ERROR',
+            '-Xep:EqualsNull:ERROR',
+            '-Xep:EqualsReference:ERROR',
+            '-Xep:EqualsWrongThing:ERROR',
+            '-Xep:FloggerFormatString:ERROR',
+            '-Xep:FloggerLogVarargs:ERROR',
+            '-Xep:FloggerSplitLogStatement:ERROR',
+            '-Xep:ForOverride:ERROR',
+            // '-Xep:FormatString:OFF',
+            '-Xep:FormatStringAnnotation:ERROR',
+            '-Xep:FromTemporalAccessor:ERROR',
+            '-Xep:FunctionalInterfaceMethodChanged:ERROR',
+            '-Xep:FuturesGetCheckedIllegalExceptionType:ERROR',
+            '-Xep:FuzzyEqualsShouldNotBeUsedInEqualsMethod:ERROR',
+            '-Xep:GetClassOnAnnotation:ERROR',
+            '-Xep:GetClassOnClass:ERROR',
+            '-Xep:GuardedBy:ERROR',
+            '-Xep:GuiceAssistedInjectScoping:ERROR',
+            '-Xep:GuiceAssistedParameters:ERROR',
+            '-Xep:GuiceInjectOnFinalField:ERROR',

Review Comment:
   We don't use Guice



##########
gradle/validation/error-prone.gradle:
##########
@@ -68,119 +68,420 @@ allprojects { prj ->
 
         options.errorprone.disableWarningsInGeneratedCode = true
         options.errorprone.errorproneArgs = [
+            '-XepDisableAllChecks', // only enable specific checks
             '-XepAllErrorsAsWarnings', // warnings still fail build by default, but allows usage of -Pjavac.failOnWarnings=false
-            '-Xep:InlineMeSuggester:OFF', // We don't use this annotation
 
-            // test
-            '-Xep:AlmostJavadoc:OFF',
-            '-Xep:AlreadyChecked:OFF',
-            '-Xep:AmbiguousMethodReference:OFF',
-            '-Xep:ArgumentSelectionDefectChecker:OFF',
-            '-Xep:ArrayAsKeyOfSetOrMap:OFF',
-            '-Xep:ArrayEquals:OFF',
-            '-Xep:ArrayHashCode:OFF',
-            '-Xep:ArrayToString:OFF',
-            '-Xep:AssertionFailureIgnored:OFF',
-            '-Xep:BadImport:OFF',
-            '-Xep:BadInstanceof:OFF',
-            '-Xep:BadShiftAmount:OFF',
-            '-Xep:BoxedPrimitiveConstructor:OFF', // we have forbiddenapis for that
-            '-Xep:ByteBufferBackingArray:OFF',
-            '-Xep:CanIgnoreReturnValueSuggester:OFF',
-            '-Xep:CatchAndPrintStackTrace:OFF',
-            '-Xep:CatchFail:OFF',
-            '-Xep:CharacterGetNumericValue:OFF',
-            '-Xep:ClassCanBeStatic:OFF',
-            '-Xep:CollectionIncompatibleType:OFF',
-            '-Xep:CollectionUndefinedEquality:OFF',
-            '-Xep:ComparableType:OFF',
-            '-Xep:ComplexBooleanConstant:OFF',
-            '-Xep:DefaultPackage:OFF',
-            '-Xep:DoNotCallSuggester:OFF',
-            '-Xep:DoNotCall:OFF',
-            '-Xep:DoubleBraceInitialization:OFF',
-            '-Xep:DoubleCheckedLocking:OFF',
-            '-Xep:EmptyCatch:OFF',
-            '-Xep:EmptyTopLevelDeclaration:OFF',
-            '-Xep:EqualsGetClass:OFF',
-            '-Xep:EqualsIncompatibleType:OFF',
-            '-Xep:EqualsUnsafeCast:OFF',
-            '-Xep:EscapedEntity:OFF',
-            '-Xep:ExtendingJUnitAssert:OFF',
-            '-Xep:ExtendsObject:OFF',
-            '-Xep:FallThrough:OFF',
-            '-Xep:Finally:OFF',
-            '-Xep:FloatingPointLiteralPrecision:OFF',
-            '-Xep:FormatString:OFF',
-            '-Xep:FutureReturnValueIgnored:OFF',
-            '-Xep:HidingField:OFF',
-            '-Xep:IdentityBinaryExpression:OFF',
-            '-Xep:IdentityHashMapUsage:OFF',
-            '-Xep:ImmutableEnumChecker:OFF',
-            '-Xep:InconsistentCapitalization:OFF',
-            '-Xep:InconsistentHashCode:OFF',
-            '-Xep:InfiniteRecursion:OFF',
-            '-Xep:InlineFormatString:OFF',
-            '-Xep:InputStreamSlowMultibyteRead:OFF',
-            '-Xep:IntLongMath:OFF',
-            '-Xep:InvalidBlockTag:OFF',
-            '-Xep:InvalidInlineTag:OFF',
-            '-Xep:InvalidParam:OFF',
-            '-Xep:InvalidPatternSyntax:OFF',
-            '-Xep:JUnit4TestNotRun:OFF',
-            '-Xep:JavaLangClash:OFF',
-            '-Xep:JavaUtilDate:OFF',
-            '-Xep:JdkObsolete:OFF',
-            '-Xep:LockNotBeforeTry:OFF',
-            '-Xep:LogicalAssignment:OFF',
-            '-Xep:LongDoubleConversion:OFF',
-            '-Xep:MathAbsoluteRandom:OFF',
-            '-Xep:MissingFail:OFF',
-            '-Xep:MissingOverride:OFF',
-            '-Xep:MissingSummary:OFF',
-            '-Xep:MisusedDayOfYear:OFF',
-            '-Xep:MixedMutabilityReturnType:OFF',
-            '-Xep:ModifiedButNotUsed:OFF',
-            '-Xep:MutablePublicArray:OFF',
-            '-Xep:NarrowingCompoundAssignment:OFF',
-            '-Xep:NonAtomicVolatileUpdate:OFF',
-            '-Xep:NonCanonicalType:OFF',
-            '-Xep:ObjectToString:OFF',
-            '-Xep:ObjectsHashCodePrimitive:OFF',
-            '-Xep:OperatorPrecedence:OFF',
-            '-Xep:ProtectedMembersInFinalClass:OFF',
-            '-Xep:ReferenceEquality:OFF',
-            '-Xep:ReturnValueIgnored:OFF',
-            '-Xep:SameNameButDifferent:OFF',
-            '-Xep:SelfAssignment:OFF',
-            '-Xep:ShortCircuitBoolean:OFF',
-            '-Xep:StaticAssignmentInConstructor:OFF',
-            '-Xep:StaticAssignmentOfThrowable:OFF',
-            '-Xep:StaticGuardedByInstance:OFF',
-            '-Xep:StreamResourceLeak:OFF',
+            // List of enabled/disabled checks
+            // Please keep this synced with https://errorprone.info/bugpatterns when upgrading!
+
+            // On by Default : ERROR
+
+            '-Xep:AlwaysThrows:ERROR',
+            '-Xep:AndroidInjectionBeforeSuper:ERROR',

Review Comment:
   We don't use android libraries, could disable this



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org


[GitHub] [lucene] rmuir commented on pull request #11970: Invert error-prone configuration to be allow-list vs deny-list

Posted by GitBox <gi...@apache.org>.
rmuir commented on PR #11970:
URL: https://github.com/apache/lucene/pull/11970#issuecomment-1325583560

   @madrob i will check your suggestions against "disable useless PR" coming soon. I just want to merge this no-op first so that we can actually review it easier. don't worry, they won't be lost.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org