gitextract_tmwxzcoo/ ├── .gitattributes ├── .gitignore ├── .mailmap ├── .travis.yml ├── LICENSE ├── README.md ├── findbugs.txt ├── huntbugs/ │ ├── .classpath │ ├── .gitignore │ ├── .project │ ├── .settings/ │ │ ├── org.eclipse.core.resources.prefs │ │ ├── org.eclipse.jdt.core.prefs │ │ ├── org.eclipse.jdt.ui.prefs │ │ ├── org.eclipse.m2e.core.prefs │ │ └── org.eclipse.pde.core.prefs │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── one/ │ │ │ └── util/ │ │ │ └── huntbugs/ │ │ │ ├── HuntBugs.java │ │ │ ├── analysis/ │ │ │ │ ├── AnalysisListener.java │ │ │ │ ├── AnalysisOptions.java │ │ │ │ ├── Context.java │ │ │ │ ├── ErrorMessage.java │ │ │ │ └── HuntBugsResult.java │ │ │ ├── assertions/ │ │ │ │ ├── AssertionData.java │ │ │ │ └── MemberAsserter.java │ │ │ ├── db/ │ │ │ │ ├── DeclaredAnnotations.java │ │ │ │ ├── FieldStats.java │ │ │ │ ├── Hierarchy.java │ │ │ │ ├── MethodStats.java │ │ │ │ └── Mutability.java │ │ │ ├── detect/ │ │ │ │ ├── AbandonedStream.java │ │ │ │ ├── AppendObjectOutputStream.java │ │ │ │ ├── ArrayRangeCheck.java │ │ │ │ ├── AtomicConcurrent.java │ │ │ │ ├── AverageComputation.java │ │ │ │ ├── BadMath.java │ │ │ │ ├── BadMethodCalls.java │ │ │ │ ├── BadMethodReferences.java │ │ │ │ ├── BadMonitorObject.java │ │ │ │ ├── CheckReturnValue.java │ │ │ │ ├── CloneContract.java │ │ │ │ ├── CompareContract.java │ │ │ │ ├── CompareUsage.java │ │ │ │ ├── ConditionChain.java │ │ │ │ ├── CovariantArrays.java │ │ │ │ ├── DeadLocalStore.java │ │ │ │ ├── DroppedExceptionObject.java │ │ │ │ ├── DubiousCatch.java │ │ │ │ ├── DuplicateAssignment.java │ │ │ │ ├── EasyMockProblems.java │ │ │ │ ├── EmptySync.java │ │ │ │ ├── EqualsContract.java │ │ │ │ ├── ExceptionalExpression.java │ │ │ │ ├── ExclusiveConditions.java │ │ │ │ ├── ExposeRepresentation.java │ │ │ │ ├── FieldAccess.java │ │ │ │ ├── FinalizerContract.java │ │ │ │ ├── FloatingPointComparison.java │ │ │ │ ├── FloatingPointNaN.java │ │ │ │ ├── IgnoredException.java │ │ │ │ ├── IncorrectVarArg.java │ │ │ │ ├── InfiniteLoop.java │ │ │ │ ├── InfiniteRecursion.java │ │ │ │ ├── InitializerRefersSubclass.java │ │ │ │ ├── Internationalization.java │ │ │ │ ├── InvalidMinMax.java │ │ │ │ ├── IteratorContract.java │ │ │ │ ├── JcipProblems.java │ │ │ │ ├── KnownComparison.java │ │ │ │ ├── LockProblems.java │ │ │ │ ├── MinValueHandling.java │ │ │ │ ├── MutableServletField.java │ │ │ │ ├── Naming.java │ │ │ │ ├── NegativeRemainder.java │ │ │ │ ├── NewGetClass.java │ │ │ │ ├── NoRuntimeRetention.java │ │ │ │ ├── NonShortCircuit.java │ │ │ │ ├── NullCheck.java │ │ │ │ ├── NumberConstructor.java │ │ │ │ ├── NumericComparison.java │ │ │ │ ├── NumericPromotion.java │ │ │ │ ├── RandomUsage.java │ │ │ │ ├── RedundantInterfaces.java │ │ │ │ ├── RedundantStreamCalls.java │ │ │ │ ├── RegexProblems.java │ │ │ │ ├── ReturnNull.java │ │ │ │ ├── RoughConstant.java │ │ │ │ ├── SameBranches.java │ │ │ │ ├── SameIfChain.java │ │ │ │ ├── SelfAssignment.java │ │ │ │ ├── SelfComputation.java │ │ │ │ ├── SerializationIdiom.java │ │ │ │ ├── SpinLoop.java │ │ │ │ ├── SqlBadArgument.java │ │ │ │ ├── StartInConstructor.java │ │ │ │ ├── StaticFieldFromInstanceMethod.java │ │ │ │ ├── StaticFieldNonThreadSafe.java │ │ │ │ ├── StringConcatInLoop.java │ │ │ │ ├── StringIndex.java │ │ │ │ ├── StringUsage.java │ │ │ │ ├── SwingProblems.java │ │ │ │ ├── SyncGetClass.java │ │ │ │ ├── SyncOnUpdatedField.java │ │ │ │ ├── ToArrayDowncast.java │ │ │ │ ├── UncalledPrivateMethod.java │ │ │ │ ├── UnnecessaryBoxing.java │ │ │ │ ├── UnnecessaryInstanceOf.java │ │ │ │ ├── UnreachableCatch.java │ │ │ │ ├── UnsafeGetResource.java │ │ │ │ ├── UnsupportedCall.java │ │ │ │ ├── UnusedParameter.java │ │ │ │ ├── UselessVoidMethod.java │ │ │ │ ├── VolatileArray.java │ │ │ │ ├── VolatileIncrement.java │ │ │ │ ├── WaitContract.java │ │ │ │ └── WrongMapIterator.java │ │ │ ├── filter/ │ │ │ │ └── AnnotationFilters.java │ │ │ ├── flow/ │ │ │ │ ├── Annotator.java │ │ │ │ ├── Annotators.java │ │ │ │ ├── BackLinkAnnotator.java │ │ │ │ ├── CFG.java │ │ │ │ ├── ClassFields.java │ │ │ │ ├── CodeBlock.java │ │ │ │ ├── ConstAnnotator.java │ │ │ │ ├── Dataflow.java │ │ │ │ ├── ETypeAnnotator.java │ │ │ │ ├── EnumConstant.java │ │ │ │ ├── Exceptional.java │ │ │ │ ├── FrameContext.java │ │ │ │ ├── GraphSearch.java │ │ │ │ ├── Inf.java │ │ │ │ ├── NullAnnotator.java │ │ │ │ ├── Nullness.java │ │ │ │ ├── PurityAnnotator.java │ │ │ │ ├── SourceAnnotator.java │ │ │ │ ├── TrueFalse.java │ │ │ │ ├── ValuesFlow.java │ │ │ │ └── etype/ │ │ │ │ ├── AndType.java │ │ │ │ ├── ComplexType.java │ │ │ │ ├── EType.java │ │ │ │ ├── OrType.java │ │ │ │ └── SingleType.java │ │ │ ├── input/ │ │ │ │ └── XmlReportReader.java │ │ │ ├── output/ │ │ │ │ ├── CombinedReportWriter.java │ │ │ │ ├── HtmlReportWriter.java │ │ │ │ ├── ReportWriter.java │ │ │ │ ├── Reports.java │ │ │ │ └── XmlReportWriter.java │ │ │ ├── registry/ │ │ │ │ ├── AbstractTypeDatabase.java │ │ │ │ ├── ClassContext.java │ │ │ │ ├── ClassData.java │ │ │ │ ├── DatabaseRegistry.java │ │ │ │ ├── Detector.java │ │ │ │ ├── DetectorRegistry.java │ │ │ │ ├── ElementContext.java │ │ │ │ ├── FieldContext.java │ │ │ │ ├── FieldData.java │ │ │ │ ├── MethodContext.java │ │ │ │ ├── MethodData.java │ │ │ │ └── anno/ │ │ │ │ ├── AssertNoWarning.java │ │ │ │ ├── AssertWarning.java │ │ │ │ ├── AstNodes.java │ │ │ │ ├── AstVisitor.java │ │ │ │ ├── ClassVisitor.java │ │ │ │ ├── FieldVisitor.java │ │ │ │ ├── MethodVisitor.java │ │ │ │ ├── TypeDatabase.java │ │ │ │ ├── TypeDatabaseItem.java │ │ │ │ ├── VisitOrder.java │ │ │ │ ├── WarningDefinition.java │ │ │ │ └── WarningDefinitions.java │ │ │ ├── repo/ │ │ │ │ ├── AuxRepository.java │ │ │ │ ├── CompositeRepository.java │ │ │ │ ├── DirRepository.java │ │ │ │ ├── FilteredRepository.java │ │ │ │ ├── JarRepository.java │ │ │ │ ├── Repository.java │ │ │ │ └── RepositoryVisitor.java │ │ │ ├── spi/ │ │ │ │ ├── DataTests.java │ │ │ │ └── HuntBugsPlugin.java │ │ │ ├── util/ │ │ │ │ ├── AccessLevel.java │ │ │ │ ├── Annotations.java │ │ │ │ ├── Equi.java │ │ │ │ ├── ExpressionFormatter.java │ │ │ │ ├── Exprs.java │ │ │ │ ├── Iterables.java │ │ │ │ ├── Maps.java │ │ │ │ ├── Methods.java │ │ │ │ ├── NodeChain.java │ │ │ │ ├── Nodes.java │ │ │ │ ├── Types.java │ │ │ │ ├── Variables.java │ │ │ │ ├── Xml.java │ │ │ │ └── YesNoMaybe.java │ │ │ └── warning/ │ │ │ ├── Formatter.java │ │ │ ├── Messages.java │ │ │ ├── Role.java │ │ │ ├── Roles.java │ │ │ ├── Warning.java │ │ │ ├── WarningAnnotation.java │ │ │ ├── WarningStatus.java │ │ │ ├── WarningType.java │ │ │ └── rule/ │ │ │ ├── CategoryRule.java │ │ │ ├── CompositeRule.java │ │ │ ├── RegexRule.java │ │ │ └── Rule.java │ │ └── resources/ │ │ └── huntbugs/ │ │ ├── messages.xml │ │ ├── messages.xsd │ │ ├── report.xsd │ │ └── report.xsl │ └── test/ │ └── java/ │ └── one/ │ └── util/ │ └── huntbugs/ │ ├── AsserterTest.java │ ├── DataTest.java │ ├── FilteredRepositoryTest.java │ ├── MessagesTest.java │ ├── OptionsTest.java │ ├── ReportsTest.java │ ├── RuleTest.java │ ├── asserter/ │ │ └── TestAsserter.java │ ├── registry/ │ │ └── DetectorRegistryTest.java │ ├── testdata/ │ │ ├── TestAbandonedStream.java │ │ ├── TestAppendObjectOutputStream.java │ │ ├── TestArrayRangeCheck.java │ │ ├── TestAtomicConcurrent.java │ │ ├── TestAverageComputation.java │ │ ├── TestBadMath.java │ │ ├── TestBadMethodCalls.java │ │ ├── TestBadMethodReferences.java │ │ ├── TestBadMonitorObject.java │ │ ├── TestCheckReturnValue.java │ │ ├── TestCloneContract.java │ │ ├── TestCompareContract.java │ │ ├── TestCompareUsage.java │ │ ├── TestConditionChain.java │ │ ├── TestCovariantArrays.java │ │ ├── TestDeadLocalStore.java │ │ ├── TestDroppedExceptionObject.java │ │ ├── TestDubiousCatch.java │ │ ├── TestDuplicateAssignment.java │ │ ├── TestEasyMockProblems.java │ │ ├── TestEmptySync.java │ │ ├── TestEqualsContract.java │ │ ├── TestExceptionalExpression.java │ │ ├── TestExclusiveConditions.java │ │ ├── TestExposeRepresentation.java │ │ ├── TestFieldAccess.java │ │ ├── TestFinalizer.java │ │ ├── TestFloatComparison.java │ │ ├── TestFloatNaN.java │ │ ├── TestIgnoredException.java │ │ ├── TestIncorrectVarArg.java │ │ ├── TestInfiniteLoop.java │ │ ├── TestInfiniteRecursion.java │ │ ├── TestInitializerRefersSubclass.java │ │ ├── TestInternationalization.java │ │ ├── TestInvalidMinMax.java │ │ ├── TestIteratorContract.java │ │ ├── TestJcipProblems.java │ │ ├── TestKnownComparison.java │ │ ├── TestLockProblems.java │ │ ├── TestMinValueHandling.java │ │ ├── TestMutableServletField.java │ │ ├── TestNaming.java │ │ ├── TestNegativeRemainder.java │ │ ├── TestNewGetClass.java │ │ ├── TestNoRuntimeRetention.java │ │ ├── TestNonShortCircuit.java │ │ ├── TestNullCheck.java │ │ ├── TestNumberConstructor.java │ │ ├── TestNumericComparison.java │ │ ├── TestNumericPromotion.java │ │ ├── TestRandomUsage.java │ │ ├── TestRedundantInterfaces.java │ │ ├── TestRedundantStreamCalls.java │ │ ├── TestRegexProblems.java │ │ ├── TestReturnNull.java │ │ ├── TestRoughConstants.java │ │ ├── TestSameBranches.java │ │ ├── TestSameIfChain.java │ │ ├── TestSelfAssignment.java │ │ ├── TestSelfComputation.java │ │ ├── TestSerializationIdiom.java │ │ ├── TestSpinLoop.java │ │ ├── TestSqlBadArgument.java │ │ ├── TestStartInConstructor.java │ │ ├── TestStaticFieldFromInstanceMethod.java │ │ ├── TestStaticFieldNonThreadSafe.java │ │ ├── TestStringConcatInLoop.java │ │ ├── TestStringIndex.java │ │ ├── TestStringUsage.java │ │ ├── TestSwingProblems.java │ │ ├── TestSyncGetClass.java │ │ ├── TestSyncOnUpdatedField.java │ │ ├── TestToArrayDowncast.java │ │ ├── TestUncalledPrivateMethod.java │ │ ├── TestUnnecessaryBoxing.java │ │ ├── TestUnnecessaryInstanceOf.java │ │ ├── TestUnreachableCatch.java │ │ ├── TestUnsafeGetResource.java │ │ ├── TestUnsupportedCall.java │ │ ├── TestUnusedParameter.java │ │ ├── TestUselessVoidMethod.java │ │ ├── TestValuesFlow.java │ │ ├── TestVolatileArray.java │ │ ├── TestVolatileIncrement.java │ │ ├── TestWaitContract.java │ │ ├── TestWrongMapIterator.java │ │ └── sub/ │ │ └── SubFieldAccess.java │ └── util/ │ └── TestIterables.java ├── huntbugs-ant-plugin/ │ ├── .classpath │ ├── .gitignore │ ├── .project │ ├── .settings/ │ │ ├── org.eclipse.core.resources.prefs │ │ ├── org.eclipse.jdt.core.prefs │ │ └── org.eclipse.m2e.core.prefs │ ├── pom.xml │ └── src/ │ └── main/ │ ├── java/ │ │ └── one/ │ │ └── util/ │ │ └── huntbugs/ │ │ └── ant/ │ │ └── HuntBugsTask.java │ └── resources/ │ └── one/ │ └── util/ │ └── huntbugs/ │ └── ant/ │ └── antlib.xml ├── huntbugs-maven-plugin/ │ ├── .classpath │ ├── .gitignore │ ├── .project │ ├── .settings/ │ │ ├── org.eclipse.core.resources.prefs │ │ ├── org.eclipse.jdt.core.prefs │ │ ├── org.eclipse.jdt.ui.prefs │ │ ├── org.eclipse.m2e.core.prefs │ │ └── org.eclipse.pde.core.prefs │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── one/ │ └── util/ │ └── huntbugs/ │ └── maven/ │ └── plugin/ │ └── HuntBugsMojo.java ├── pom.xml ├── sample-huntbugs-custom-detector/ │ ├── .gitignore │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── one/ │ │ │ └── util/ │ │ │ └── huntbugs/ │ │ │ └── sample/ │ │ │ ├── SampleHuntBugsPlugin.java │ │ │ └── detect/ │ │ │ └── SampleCustomDetector.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── services/ │ │ │ └── one.util.huntbugs.spi.HuntBugsPlugin │ │ └── huntbugs/ │ │ └── messages.xml │ └── test/ │ └── java/ │ └── one/ │ └── util/ │ └── huntbugs/ │ └── sample/ │ ├── DataTest.java │ └── testdata/ │ └── TestSampleCustomDetector.java └── sample-project/ ├── .gitignore ├── pom.xml └── src/ ├── main/ │ └── java/ │ └── one/ │ └── util/ │ └── huntbugs/ │ └── sample/ │ └── MyProductionCode.java └── test/ └── java/ └── one/ └── util/ └── huntbugs/ └── sample/ └── MyProductionCodeTest.java