vthacker commented on pull request #1816:
URL: https://github.com/apache/lucene-solr/pull/1816#issuecomment-686220411


   Here is the complete list of warnings/errors that this tool gives us for 
lucene-core
   
   ```
   ~/apache-work/lucene-solr (solr_core_errorprone) $ gradlew -p lucene/core/ 
compileJava
   
   > Task :lucene:core:compileJava
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/search/Sort.java:180:
 warning: [ReferenceEquality] Comparison using reference equality instead of 
value equality
         if (fields[i] != rewrittenSortFields[i]) {
                       ^
       (see https://errorprone.info/bugpattern/ReferenceEquality)
     Did you mean 'if (!Objects.equals(fields[i], rewrittenSortFields[i])) {' 
or 'if (!fields[i].equals(rewrittenSortFields[i])) {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/search/Sort.java:185:
 warning: [UnnecessaryParentheses] These grouping parentheses are unnecessary; 
it is unlikely the code will be misinterpreted without them
       return (changed) ? new Sort(rewrittenSortFields) : this;
              ^
       (see https://errorprone.info/bugpattern/UnnecessaryParentheses)
     Did you mean 'return changed ? new Sort(rewrittenSortFields) : this;'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/search/IndexSearcher.java:690:
 warning: [ModifiedButNotUsed] A collection or proto builder was created, but 
its values were never accessed.
         final List<C> collectedCollectors = new ArrayList<>();
                                             ^
       (see https://errorprone.info/bugpattern/ModifiedButNotUsed)
     Did you mean to remove this line or to remove this line?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/search/IndexSearcher.java:756:
 warning: [ReferenceEquality] Comparison using reference equality instead of 
value equality
       for (Query rewrittenQuery = query.rewrite(reader); rewrittenQuery != 
query;
                                                                         ^
       (see https://errorprone.info/bugpattern/ReferenceEquality)
     Did you mean 'for (Query rewrittenQuery = query.rewrite(reader); 
!Objects.equals(rewrittenQuery, query);' or 'for (Query rewrittenQuery = 
query.rewrite(reader); !rewrittenQuery.equals(query);'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/search/similarities/Similarity.java:98:
 warning: [PublicConstructorForAbstractClass] Constructors of on an abstract 
class can be declared protected as there is never a need for them to be public
     public Similarity() {}
            ^
       (see 
https://errorprone.info/bugpattern/PublicConstructorForAbstractClass)
     Did you mean 'protected Similarity() {}'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/search/similarities/Similarity.java:111:
 warning: [EscapedEntity] HTML entities in @code/@literal tags will appear 
literally in the rendered javadoc.
      * {@code Long.compareUnsigned(n1, n2) &gt; 0} then
        ^
       (see https://errorprone.info/bugpattern/EscapedEntity)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/search/similarities/Similarity.java:112:
 warning: [EscapedEntity] HTML entities in @code/@literal tags will appear 
literally in the rendered javadoc.
      * {@code SimScorer.score(freq, n1) &lt;= SimScorer.score(freq, n2)}
        ^
       (see https://errorprone.info/bugpattern/EscapedEntity)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/search/similarities/Similarity.java:157:
 warning: [EscapedEntity] HTML entities in @code/@literal tags will appear 
literally in the rendered javadoc.
        * {@code freq1 &gt; freq2}, then {@code score(freq1, norm) &gt;=
          ^
       (see https://errorprone.info/bugpattern/EscapedEntity)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/search/similarities/Similarity.java:157:
 warning: [EscapedEntity] HTML entities in @code/@literal tags will appear 
literally in the rendered javadoc.
        * {@code freq1 &gt; freq2}, then {@code score(freq1, norm) &gt;=
                                         ^
       (see https://errorprone.info/bugpattern/EscapedEntity)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/search/similarities/Similarity.java:162:
 warning: [EscapedEntity] HTML entities in @code/@literal tags will appear 
literally in the rendered javadoc.
        * {@code Long.compareUnsigned(norm1, norm2) &gt; 0} then
          ^
       (see https://errorprone.info/bugpattern/EscapedEntity)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/search/similarities/Similarity.java:163:
 warning: [EscapedEntity] HTML entities in @code/@literal tags will appear 
literally in the rendered javadoc.
        * {@code score(freq, norm1) &lt;= score(freq, norm2)} for any legal
          ^
       (see https://errorprone.info/bugpattern/EscapedEntity)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/util/automaton/RunAutomaton.java:206:
 warning: [EqualsGetClass] Prefer instanceof to getClass when implementing 
Object#equals.
     public boolean equals(Object obj) {
                    ^
       (see https://errorprone.info/bugpattern/EqualsGetClass)
     Did you mean to remove this line?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/util/FixedBitSet.java:502:
 warning: [InconsistentHashCode] hashCode includes the fields [numWords], which 
equals does not. Two instances of this class could compare equal, but have 
different hashCodes, which violates the hashCode contract.
     public int hashCode() {
                ^
       (see https://errorprone.info/bugpattern/InconsistentHashCode)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/util/FixedBitSet.java:189:
 warning: [MissingOverride] set implements method in BitSet; expected @Override
     public void set(int index) {
                 ^
       (see https://errorprone.info/bugpattern/MissingOverride)
     Did you mean '@Override public void set(int index) {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/FieldInvertState.java:94:
 warning: [ReferenceEquality] Comparison using reference equality instead of 
value equality
       if (this.attributeSource != attributeSource) {
                                ^
       (see https://errorprone.info/bugpattern/ReferenceEquality)
     Did you mean 'if (!Objects.equals(this.attributeSource, attributeSource)) 
{' or 'if (!this.attributeSource.equals(attributeSource)) {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/util/AttributeSource.java:437:
 warning: [BadImport] Importing nested classes/static methods/static fields 
with commonly-used names can make code harder to read, because it may not be 
clear from the context exactly which type is being referred to. Qualifying the 
name with that of the containing class can make the code clearer.
         for (Entry<Class<? extends Attribute>, AttributeImpl> entry : 
this.attributes.entrySet()) {
              ^
       (see https://errorprone.info/bugpattern/BadImport)
     Did you mean 'for (Map.Entry<Class<? extends Attribute>, AttributeImpl> 
entry : this.attributes.entrySet()) {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/util/AttributeFactory.java:104:
 warning: [PublicConstructorForAbstractClass] Constructors of on an abstract 
class can be declared protected as there is never a need for them to be public
       public StaticImplementationAttributeFactory(AttributeFactory delegate, 
Class<A> clazz) {
              ^
       (see 
https://errorprone.info/bugpattern/PublicConstructorForAbstractClass)
     Did you mean 'protected 
StaticImplementationAttributeFactory(AttributeFactory delegate, Class<A> clazz) 
{'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/util/AttributeFactory.java:118:
 warning: [EqualsGetClass] Prefer instanceof to getClass when implementing 
Object#equals.
       public boolean equals(Object other) {
                      ^
       (see https://errorprone.info/bugpattern/EqualsGetClass)
     Did you mean 'if (!(other instanceof 
StaticImplementationAttributeFactory))'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/search/FieldComparator.java:148:
 warning: [PublicConstructorForAbstractClass] Constructors of on an abstract 
class can be declared protected as there is never a need for them to be public
       public NumericComparator(String field, T missingValue) {
              ^
       (see 
https://errorprone.info/bugpattern/PublicConstructorForAbstractClass)
     Did you mean 'protected NumericComparator(String field, T missingValue) {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/util/automaton/CompiledAutomaton.java:478:
 warning: [EqualsGetClass] Prefer instanceof to getClass when implementing 
Object#equals.
     public boolean equals(Object obj) {
                    ^
       (see https://errorprone.info/bugpattern/EqualsGetClass)
     Did you mean to remove this line?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/analysis/Analyzer.java:97:
 warning: [PublicConstructorForAbstractClass] Constructors of on an abstract 
class can be declared protected as there is never a need for them to be public
     public Analyzer() {
            ^
       (see 
https://errorprone.info/bugpattern/PublicConstructorForAbstractClass)
     Did you mean 'protected Analyzer() {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/analysis/Analyzer.java:109:
 warning: [PublicConstructorForAbstractClass] Constructors of on an abstract 
class can be declared protected as there is never a need for them to be public
     public Analyzer(ReuseStrategy reuseStrategy) {
            ^
       (see 
https://errorprone.info/bugpattern/PublicConstructorForAbstractClass)
     Did you mean 'protected Analyzer(ReuseStrategy reuseStrategy) {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/analysis/Analyzer.java:370:
 warning: [ProtectedMembersInFinalClass] Make members of final classes 
package-private: source, sink
       protected final Consumer<Reader> source;
                                        ^
       (see https://errorprone.info/bugpattern/ProtectedMembersInFinalClass)
     Did you mean 'final Consumer<Reader> source;'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/analysis/Analyzer.java:445:
 warning: [PublicConstructorForAbstractClass] Constructors of on an abstract 
class can be declared protected as there is never a need for them to be public
       public ReuseStrategy() {}
              ^
       (see 
https://errorprone.info/bugpattern/PublicConstructorForAbstractClass)
     Did you mean 'protected ReuseStrategy() {}'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/util/CloseableThreadLocal.java:58:
 warning: [ThreadLocalUsage] ThreadLocals should be stored in static fields
     private ThreadLocal<WeakReference<T>> t = new ThreadLocal<>();
                                               ^
       (see https://errorprone.info/bugpattern/ThreadLocalUsage)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/util/CloseableThreadLocal.java:97:
 warning: [SynchronizeOnNonFinalField] Synchronizing on non-final fields is not 
safe: if the field is ever updated, different threads may end up locking on 
different objects.
       synchronized(hardRefs) {
                   ^
       (see https://errorprone.info/bugpattern/SynchronizeOnNonFinalField)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/util/CloseableThreadLocal.java:111:
 warning: [SynchronizeOnNonFinalField] Synchronizing on non-final fields is not 
safe: if the field is ever updated, different threads may end up locking on 
different objects.
       synchronized(hardRefs) {
                   ^
       (see https://errorprone.info/bugpattern/SynchronizeOnNonFinalField)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/store/IOContext.java:113:
 warning: [EqualsGetClass] Prefer instanceof to getClass when implementing 
Object#equals.
     public boolean equals(Object obj) {
                    ^
       (see https://errorprone.info/bugpattern/EqualsGetClass)
     Did you mean to remove this line?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/util/RamUsageEstimator.java:199:
 warning: [IntLongMath] Expression of type int may overflow before being 
assigned to a long
             * 2; // hash tables need to be oversized to avoid collisions, 
assume 2x capacity
             ^
       (see https://errorprone.info/bugpattern/IntLongMath)
     Did you mean '2L * NUM_BYTES_OBJECT_REF'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/util/RamUsageEstimator.java:362:
 warning: [ReferenceEquality] Comparison using reference equality instead of 
value equality
         if (query != root) {
                   ^
       (see https://errorprone.info/bugpattern/ReferenceEquality)
     Did you mean 'if (!Objects.equals(query, root)) {' or 'if 
(!query.equals(root)) {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/util/RamUsageEstimator.java:376:
 warning: [ReferenceEquality] Comparison using reference equality instead of 
value equality
         if (query == root) {
                   ^
       (see https://errorprone.info/bugpattern/ReferenceEquality)
     Did you mean 'if (Objects.equals(query, root)) {' or 'if 
(query.equals(root)) {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/DocValuesUpdate.java:102:
 warning: [InconsistentCapitalization] Found the field 'docIDUpto' with the 
same name as the parameter 'docIDUpTo' but with different capitalization.
       private BinaryDocValuesUpdate(Term term, String field, BytesRef value, 
int docIDUpTo) {
                                                                                
  ^
       (see https://errorprone.info/bugpattern/InconsistentCapitalization)
     Did you mean 'private BinaryDocValuesUpdate(Term term, String field, 
BytesRef value, int docIDUpto) {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/DocValuesUpdate.java:159:
 warning: [InconsistentCapitalization] Found the field 'docIDUpto' with the 
same name as the parameter 'docIDUpTo' but with different capitalization.
       private NumericDocValuesUpdate(Term term, String field, long value, int 
docIDUpTo, boolean hasValue) {
                                                                               ^
       (see https://errorprone.info/bugpattern/InconsistentCapitalization)
     Did you mean 'private NumericDocValuesUpdate(Term term, String field, long 
value, int docIDUpto, boolean hasValue) {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/DocValuesUpdate.java:73:
 warning: [NarrowingCompoundAssignment] Compound assignments from long to int 
hide lossy casts
       sizeInBytes += valueSizeInBytes();
                   ^
       (see https://errorprone.info/bugpattern/NarrowingCompoundAssignment)
     Did you mean 'sizeInBytes = (int) (sizeInBytes + valueSizeInBytes());'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/DocValuesUpdate.java:96:
 warning: [IntLongMath] Expression of type int may overflow before being 
assigned to a long
       private static final long RAW_VALUE_SIZE_IN_BYTES = 
NUM_BYTES_ARRAY_HEADER + 2*Integer.BYTES + NUM_BYTES_OBJECT_REF;
                                                                                
                    ^
       (see https://errorprone.info/bugpattern/IntLongMath)
     Did you mean 'private static final long RAW_VALUE_SIZE_IN_BYTES = (long) 
NUM_BYTES_ARRAY_HEADER + 2*Integer.BYTES + NUM_BYTES_OBJECT_REF;'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java:401:
 warning: [JdkObsolete] It is very rare for LinkedList to out-perform ArrayList 
or ArrayDeque. Avoid it unless you're willing to invest a lot of time into 
benchmarking. Caveat: LinkedList supports null elements, but ArrayDeque does 
not.
     private final LinkedList<MergePolicy.OneMerge> pendingMerges = new 
LinkedList<>();
                                                                    ^
       (see https://errorprone.info/bugpattern/JdkObsolete)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java:2206:
 warning: [JdkObsolete] It is very rare for LinkedList to out-perform ArrayList 
or ArrayDeque. Avoid it unless you're willing to invest a lot of time into 
benchmarking. Caveat: LinkedList supports null elements, but ArrayDeque does 
not.
               if (pendingMerges.contains(merge) || 
runningMerges.contains(merge)) {
                                         ^
       (see https://errorprone.info/bugpattern/JdkObsolete)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java:2337:
 warning: [MissingOverride] getMergingSegments implements method in 
MergeContext; expected @Override
     public synchronized Set<SegmentCommitInfo> getMergingSegments() {
                                                ^
       (see https://errorprone.info/bugpattern/MissingOverride)
     Did you mean '@Override public synchronized Set<SegmentCommitInfo> 
getMergingSegments() {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java:2348:
 warning: [JdkObsolete] It is very rare for LinkedList to out-perform ArrayList 
or ArrayDeque. Avoid it unless you're willing to invest a lot of time into 
benchmarking. Caveat: LinkedList supports null elements, but ArrayDeque does 
not.
       if (pendingMerges.size() == 0) {
                             ^
       (see https://errorprone.info/bugpattern/JdkObsolete)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java:2352:
 warning: [JdkObsolete] It is very rare for LinkedList to out-perform ArrayList 
or ArrayDeque. Avoid it unless you're willing to invest a lot of time into 
benchmarking. Caveat: LinkedList supports null elements, but ArrayDeque does 
not.
         MergePolicy.OneMerge merge = pendingMerges.removeFirst();
                                                               ^
       (see https://errorprone.info/bugpattern/JdkObsolete)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java:2364:
 warning: [JdkObsolete] It is very rare for LinkedList to out-perform ArrayList 
or ArrayDeque. Avoid it unless you're willing to invest a lot of time into 
benchmarking. Caveat: LinkedList supports null elements, but ArrayDeque does 
not.
       return pendingMerges.size() != 0;
                                ^
       (see https://errorprone.info/bugpattern/JdkObsolete)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java:2632:
 warning: [JdkObsolete] It is very rare for LinkedList to out-perform ArrayList 
or ArrayDeque. Avoid it unless you're willing to invest a lot of time into 
benchmarking. Caveat: LinkedList supports null elements, but ArrayDeque does 
not.
       pendingMerges.clear();
                          ^
       (see https://errorprone.info/bugpattern/JdkObsolete)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java:2679:
 warning: [JdkObsolete] It is very rare for LinkedList to out-perform ArrayList 
or ArrayDeque. Avoid it unless you're willing to invest a lot of time into 
benchmarking. Caveat: LinkedList supports null elements, but ArrayDeque does 
not.
         while (pendingMerges.size() > 0 || runningMerges.size() > 0) {
                                  ^
       (see https://errorprone.info/bugpattern/JdkObsolete)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java:3237:
 warning: [UndefinedEquals] Collection does not have well-defined equals 
behavior.
       assert copiedFiles.equals(newInfoPerCommit.files()): "copiedFiles=" + 
copiedFiles + " vs " + newInfoPerCommit.files();
                                ^
       (see https://errorprone.info/bugpattern/UndefinedEquals)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java:3587:
 warning: [JdkObsolete] It is very rare for LinkedList to out-perform ArrayList 
or ArrayDeque. Avoid it unless you're willing to invest a lot of time into 
benchmarking. Caveat: LinkedList supports null elements, but ArrayDeque does 
not.
               boolean removed = pendingMerges.remove(merge);
                                                     ^
       (see https://errorprone.info/bugpattern/JdkObsolete)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java:4437:
 warning: [JdkObsolete] It is very rare for LinkedList to out-perform ArrayList 
or ArrayDeque. Avoid it unless you're willing to invest a lot of time into 
benchmarking. Caveat: LinkedList supports null elements, but ArrayDeque does 
not.
       pendingMerges.add(merge);
                        ^
       (see https://errorprone.info/bugpattern/JdkObsolete)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java:4440:
 warning: [JdkObsolete] It is very rare for LinkedList to out-perform ArrayList 
or ArrayDeque. Avoid it unless you're willing to invest a lot of time into 
benchmarking. Caveat: LinkedList supports null elements, but ArrayDeque does 
not.
         infoStream.message("IW", "add merge to pendingMerges: " + 
segString(merge.segments) + " [total " + pendingMerges.size() + " pending]");
                                                                                
                                              ^
       (see https://errorprone.info/bugpattern/JdkObsolete)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java:4476:
 warning: [NarrowingCompoundAssignment] Compound assignments from double to 
long hide lossy casts
           merge.estimatedMergeBytes += info.sizeInBytes() * (1.0 - delRatio);
                                     ^
       (see https://errorprone.info/bugpattern/NarrowingCompoundAssignment)
     Did you mean 'merge.estimatedMergeBytes = (long) 
(merge.estimatedMergeBytes + info.sizeInBytes() * (1.0 - delRatio));'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java:4581:
 warning: [JdkObsolete] Date has a bad API that leads to bugs; prefer 
java.time.Instant or LocalDate.
       diagnostics.put("timestamp", Long.toString(new Date().getTime()));
                                                                    ^
       (see https://errorprone.info/bugpattern/JdkObsolete)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java:4581:
 warning: [JdkObsolete] Date has a bad API that leads to bugs; prefer 
java.time.Instant or LocalDate.
       diagnostics.put("timestamp", Long.toString(new Date().getTime()));
                                                  ^
       (see https://errorprone.info/bugpattern/JdkObsolete)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java:4699:
 warning: [ReferenceEquality] Comparison using reference equality instead of 
value equality
             if (reader != wrappedReader) { // if we don't have a wrapped 
reader we won't preserve any soft-deletes
                        ^
       (see https://errorprone.info/bugpattern/ReferenceEquality)
     Did you mean 'if (!Objects.equals(reader, wrappedReader)) {' or 'if 
(!reader.equals(wrappedReader)) {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java:4746:
 warning: [ReferenceEquality] Comparison using reference equality instead of 
value equality
         assert mergeState.segmentInfo == merge.info.info;
                                       ^
       (see https://errorprone.info/bugpattern/ReferenceEquality)
     Did you mean 'assert Objects.equals(mergeState.segmentInfo, 
merge.info.info);' or 'assert mergeState.segmentInfo.equals(merge.info.info);'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java:4969:
 warning: [WaitNotInLoop] Because of spurious wakeups, wait(long) must always 
be called in a loop
         wait(1000);
             ^
       (see https://errorprone.info/bugpattern/WaitNotInLoop)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java:5900:
 warning: [MissingOverride] toString overrides method in Object; expected 
@Override
       public String toString() {
                     ^
       (see https://errorprone.info/bugpattern/MissingOverride)
     Did you mean '@Override public String toString() {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/MergeState.java:245:
 warning: [PublicConstructorForAbstractClass] Constructors of on an abstract 
class can be declared protected as there is never a need for them to be public
       public DocMap() {
              ^
       (see 
https://errorprone.info/bugpattern/PublicConstructorForAbstractClass)
     Did you mean 'protected DocMap() {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/MergePolicy.java:185:
 warning: [BadImport] Importing nested classes/static methods/static fields 
with commonly-used names can make code harder to read, because it may not be 
clear from the context exactly which type is being referred to. Qualifying the 
name with that of the containing class can make the code clearer.
         Set<Entry<PauseReason,AtomicLong>> entries = pauseTimesNS.entrySet();
             ^
       (see https://errorprone.info/bugpattern/BadImport)
     Did you mean 'Set<Map.Entry<PauseReason,AtomicLong>> entries = 
pauseTimesNS.entrySet();'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/MergePolicy.java:561:
 warning: [PublicConstructorForAbstractClass] Constructors of on an abstract 
class can be declared protected as there is never a need for them to be public
     public MergePolicy() {
            ^
       (see 
https://errorprone.info/bugpattern/PublicConstructorForAbstractClass)
     Did you mean 'protected MergePolicy() {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterDeleteQueue.java:513:
 warning: [LockNotBeforeTry] Prefer locking *immediately* before the try block 
which releases the lock to avoid the possibility of any intermediate statements 
throwing.
       globalBufferLock.lock();
                            ^
       (see https://errorprone.info/bugpattern/LockNotBeforeTry)
     Did you mean to remove this line?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/util/ByteBlockPool.java:56:
 warning: [PublicConstructorForAbstractClass] Constructors of on an abstract 
class can be declared protected as there is never a need for them to be public
       public Allocator(int blockSize) {
              ^
       (see 
https://errorprone.info/bugpattern/PublicConstructorForAbstractClass)
     Did you mean 'protected Allocator(int blockSize) {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/util/ByteBlockPool.java:235:
 warning: [MutablePublicArray] Non-empty arrays are mutable, so this `public 
static final` array is not a constant and can be modified by clients of this 
class.  Prefer an ImmutableList, or provide an accessor method that returns a 
defensive copy.
     public final static int[] NEXT_LEVEL_ARRAY = {1, 2, 3, 4, 5, 6, 7, 8, 9, 
9};
                               ^
       (see https://errorprone.info/bugpattern/MutablePublicArray)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/util/ByteBlockPool.java:240:
 warning: [MutablePublicArray] Non-empty arrays are mutable, so this `public 
static final` array is not a constant and can be modified by clients of this 
class.  Prefer an ImmutableList, or provide an accessor method that returns a 
defensive copy.
     public final static int[] LEVEL_SIZE_ARRAY = {5, 14, 20, 30, 40, 40, 80, 
80, 120, 200};
                               ^
       (see https://errorprone.info/bugpattern/MutablePublicArray)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java:336:
 warning: [ReferenceEquality] Comparison using reference equality instead of 
value equality
       assert flushPending.get() == Boolean.TRUE;
                                 ^
       (see https://errorprone.info/bugpattern/ReferenceEquality)
     Did you mean 'assert Objects.equals(flushPending.get(), Boolean.TRUE);' or 
'assert flushPending.get().equals(Boolean.TRUE);'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java:596:
 warning: [ReferenceEquality] Comparison using reference equality instead of 
value equality
       return flushPending.get() == Boolean.TRUE;
                                 ^
       (see https://errorprone.info/bugpattern/ReferenceEquality)
     Did you mean 'return Objects.equals(flushPending.get(), Boolean.TRUE);' or 
'return flushPending.get().equals(Boolean.TRUE);'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java:623:
 warning: [NonAtomicVolatileUpdate] This update of a volatile variable is 
non-atomic
       lastCommittedBytesUsed += delta;
                              ^
       (see https://errorprone.info/bugpattern/NonAtomicVolatileUpdate)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java:665:
 warning: [ReferenceEquality] Comparison using reference equality instead of 
value equality
       return hasFlushed.get() == Boolean.TRUE;
                               ^
       (see https://errorprone.info/bugpattern/ReferenceEquality)
     Did you mean 'return Objects.equals(hasFlushed.get(), Boolean.TRUE);' or 
'return hasFlushed.get().equals(Boolean.TRUE);'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/util/packed/PackedInts.java:148:
 warning: [ImmutableEnumChecker] enums should be immutable: 'Format' has 
non-final field 'id'
       public int id;
                  ^
       (see https://errorprone.info/bugpattern/ImmutableEnumChecker)
     Did you mean 'public final int id;'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/util/LongsRef.java:75:
 warning: [IntLongMath] Expression of type int may overflow before being 
assigned to a long
       final long end = offset + length;
                               ^
       (see https://errorprone.info/bugpattern/IntLongMath)
     Did you mean 'final long end = (long) offset + length;'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/util/LongsRef.java:109:
 warning: [IntLongMath] Expression of type int may overflow before being 
assigned to a long
       final long end = offset + length;
                               ^
       (see https://errorprone.info/bugpattern/IntLongMath)
     Did you mean 'final long end = (long) offset + length;'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/SegmentCommitInfo.java:392:
 warning: [BadImport] Importing nested classes/static methods/static fields 
with commonly-used names can make code harder to read, because it may not be 
clear from the context exactly which type is being referred to. Qualifying the 
name with that of the containing class can make the code clearer.
       for (Entry<Integer,Set<String>> e : dvUpdatesFiles.entrySet()) {
            ^
       (see https://errorprone.info/bugpattern/BadImport)
     Did you mean 'for (Map.Entry<Integer,Set<String>> e : 
dvUpdatesFiles.entrySet()) {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java:583:
 warning: [BadImport] Importing nested classes/static methods/static fields 
with commonly-used names can make code harder to read, because it may not be 
clear from the context exactly which type is being referred to. Qualifying the 
name with that of the containing class can make the code clearer.
         for (Entry<Integer,Set<String>> e : dvUpdatesFiles.entrySet()) {
              ^
       (see https://errorprone.info/bugpattern/BadImport)
     Did you mean 'for (Map.Entry<Integer,Set<String>> e : 
dvUpdatesFiles.entrySet()) {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java:443:
 warning: [Finally] If you return or throw from a finally, then values returned 
or thrown from the try-catch block will be ignored. Consider using 
try-with-resources instead.
           throw IOUtils.rethrowAlways(priorE);
           ^
       (see https://errorprone.info/bugpattern/Finally)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java:672:
 warning: [PublicConstructorForAbstractClass] Constructors of on an abstract 
class can be declared protected as there is never a need for them to be public
       public FindSegmentsFile(Directory directory) {
              ^
       (see 
https://errorprone.info/bugpattern/PublicConstructorForAbstractClass)
     Did you mean 'protected FindSegmentsFile(Directory directory) {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/IndexFileDeleter.java:80:
 warning: [AlmostJavadoc] This comment contains Javadoc or HTML tags, but isn't 
started with a double asterisk (/**); is it meant to be Javadoc?
   final class IndexFileDeleter implements Closeable {
         ^
       (see https://errorprone.info/bugpattern/AlmostJavadoc)
     Did you mean '/**'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/store/Lock.java:48:
 warning: [MissingOverride] close implements method in Closeable; expected 
@Override
     public abstract void close() throws IOException;
                          ^
       (see https://errorprone.info/bugpattern/MissingOverride)
     Did you mean '@Override public abstract void close() throws IOException;'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/DirectoryReader.java:141:
 warning: [ReferenceEquality] Comparison using reference equality instead of 
value equality
       assert newReader != oldReader;
                        ^
       (see https://errorprone.info/bugpattern/ReferenceEquality)
     Did you mean 'assert !Objects.equals(newReader, oldReader);' or 'assert 
!newReader.equals(oldReader);'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/DirectoryReader.java:154:
 warning: [ReferenceEquality] Comparison using reference equality instead of 
value equality
       assert newReader != oldReader;
                        ^
       (see https://errorprone.info/bugpattern/ReferenceEquality)
     Did you mean 'assert !Objects.equals(newReader, oldReader);' or 'assert 
!newReader.equals(oldReader);'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/DirectoryReader.java:236:
 warning: [ReferenceEquality] Comparison using reference equality instead of 
value equality
       assert newReader != oldReader;
                        ^
       (see https://errorprone.info/bugpattern/ReferenceEquality)
     Did you mean 'assert !Objects.equals(newReader, oldReader);' or 'assert 
!newReader.equals(oldReader);'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/ReadersAndUpdates.java:280:
 warning: [BadImport] Importing nested classes/static methods/static fields 
with commonly-used names can make code harder to read, because it may not be 
clear from the context exactly which type is being referred to. Qualifying the 
name with that of the containing class can make the code clearer.
       for (Entry<String,List<DocValuesFieldUpdates>> ent : 
pendingDVUpdates.entrySet()) {
            ^
       (see https://errorprone.info/bugpattern/BadImport)
     Did you mean 'for (Map.Entry<String,List<DocValuesFieldUpdates>> ent : 
pendingDVUpdates.entrySet()) {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/ReadersAndUpdates.java:429:
 warning: [ProtectedMembersInFinalClass] Make members of final classes 
package-private: <init>
       protected MergedDocValues(DocValuesInstance onDiskDocValues, 
DocValuesInstance updateDocValues, DocValuesFieldUpdates.Iterator 
updateIterator) {
                 ^
       (see https://errorprone.info/bugpattern/ProtectedMembersInFinalClass)
     Did you mean 'MergedDocValues(DocValuesInstance onDiskDocValues, 
DocValuesInstance updateDocValues, DocValuesFieldUpdates.Iterator 
updateIterator) {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/ReadersAndUpdates.java:495:
 warning: [IntLongMath] Expression of type int may overflow before being 
assigned to a long
       final long estInfosSize = 40 + 90 * fieldInfos.size();
                                    ^
       (see https://errorprone.info/bugpattern/IntLongMath)
     Did you mean 'final long estInfosSize = 40L + 90 * fieldInfos.size();'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/ReadersAndUpdates.java:583:
 warning: [ReferenceEquality] Comparison using reference equality instead of 
value equality
           if (reader != this.reader) {
                      ^
       (see https://errorprone.info/bugpattern/ReferenceEquality)
     Did you mean 'if (!reader.equals(this.reader)) {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/FieldUpdatesBuffer.java:131:
 warning: [ReferenceEquality] Comparison using reference equality instead of 
value equality
         if (field != fields[0]) { // that's an easy win of not accounting if 
there is an outlier
                   ^
       (see https://errorprone.info/bugpattern/ReferenceEquality)
     Did you mean 'if (!Objects.equals(field, fields[0])) {' or 'if 
(!field.equals(fields[0])) {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/util/BytesRefArray.java:247:
 warning: [IntLongMath] Expression of type int may overflow before being 
assigned to a long
         return RamUsageEstimator.NUM_BYTES_ARRAY_HEADER + indices.length * 
Integer.BYTES;
                                                         ^
       (see https://errorprone.info/bugpattern/IntLongMath)
     Did you mean 'return (long) RamUsageEstimator.NUM_BYTES_ARRAY_HEADER + 
indices.length * Integer.BYTES;'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/util/packed/AbstractPagedMutable.java:105:
 warning: [IntLongMath] Expression of type int may overflow before being 
assigned to a long
           + 3 * Integer.BYTES;
           ^
       (see https://errorprone.info/bugpattern/IntLongMath)
     Did you mean 'return (long) RamUsageEstimator.NUM_BYTES_OBJECT_HEADER'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/PrefixCodedTerms.java:193:
 warning: [EqualsGetClass] Prefer instanceof to getClass when implementing 
Object#equals.
     public boolean equals(Object obj) {
                    ^
       (see https://errorprone.info/bugpattern/EqualsGetClass)
     Did you mean 'if (!(obj instanceof PrefixCodedTerms)) {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/store/ByteBuffersDataInput.java:184:
 warning: [UnnecessaryParentheses] These grouping parentheses are unnecessary; 
it is unlikely the code will be misinterpreted without them
         return ((readByte(pos    )       ) << 24 |
                 ^
       (see https://errorprone.info/bugpattern/UnnecessaryParentheses)
     Did you mean 'return (readByte(pos    ) << 24 |'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/store/MergeInfo.java:64:
 warning: [EqualsGetClass] Prefer instanceof to getClass when implementing 
Object#equals.
     public boolean equals(Object obj) {
                    ^
       (see https://errorprone.info/bugpattern/EqualsGetClass)
     Did you mean to remove this line?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/codecs/CompoundFormat.java:34:
 warning: [PublicConstructorForAbstractClass] Constructors of on an abstract 
class can be declared protected as there is never a need for them to be public
     public CompoundFormat() {
            ^
       (see 
https://errorprone.info/bugpattern/PublicConstructorForAbstractClass)
     Did you mean 'protected CompoundFormat() {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterFlushQueue.java:32:
 warning: [JdkObsolete] It is very rare for LinkedList to out-perform ArrayList 
or ArrayDeque. Avoid it unless you're willing to invest a lot of time into 
benchmarking. Caveat: LinkedList supports null elements, but ArrayDeque does 
not.
     private final Queue<FlushTicket> queue = new LinkedList<>();
                                              ^
       (see https://errorprone.info/bugpattern/JdkObsolete)
     Did you mean 'private final Queue<FlushTicket> queue = new 
ArrayDeque<>();'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterFlushControl.java:60:
 warning: [JdkObsolete] It is very rare for LinkedList to out-perform ArrayList 
or ArrayDeque. Avoid it unless you're willing to invest a lot of time into 
benchmarking. Caveat: LinkedList supports null elements, but ArrayDeque does 
not.
     private final Queue<DocumentsWriterPerThread> flushQueue = new 
LinkedList<>();
                                                                ^
       (see https://errorprone.info/bugpattern/JdkObsolete)
     Did you mean 'private final Queue<DocumentsWriterPerThread> flushQueue = 
new ArrayDeque<>();'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterFlushControl.java:62:
 warning: [JdkObsolete] It is very rare for LinkedList to out-perform ArrayList 
or ArrayDeque. Avoid it unless you're willing to invest a lot of time into 
benchmarking. Caveat: LinkedList supports null elements, but ArrayDeque does 
not.
     private final Queue<DocumentsWriterPerThread> blockedFlushes = new 
LinkedList<>();
                                                                    ^
       (see https://errorprone.info/bugpattern/JdkObsolete)
     Did you mean 'private final Queue<DocumentsWriterPerThread> blockedFlushes 
= new ArrayDeque<>();'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterFlushControl.java:88:
 warning: [IntLongMath] Expression of type int may overflow before being 
assigned to a long
       this.hardMaxBytesPerDWPT = config.getRAMPerThreadHardLimitMB() * 1024 * 
1024;
                                                                             ^
       (see https://errorprone.info/bugpattern/IntLongMath)
     Did you mean 'this.hardMaxBytesPerDWPT = 
config.getRAMPerThreadHardLimitMB() * 1024L * 1024;'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterFlushControl.java:336:
 warning: [NonAtomicVolatileUpdate] This update of a volatile variable is 
non-atomic
       numPending--; // write access synced
                 ^
       (see https://errorprone.info/bugpattern/NonAtomicVolatileUpdate)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterStallControl.java:77:
 warning: [WaitNotInLoop] Because of spurious wakeups, wait(long) must always 
be called in a loop
               wait(1000);
                   ^
       (see https://errorprone.info/bugpattern/WaitNotInLoop)
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/util/IntBlockPool.java:36:
 warning: [PublicConstructorForAbstractClass] Constructors of on an abstract 
class can be declared protected as there is never a need for them to be public
       public Allocator(int blockSize) {
              ^
       (see 
https://errorprone.info/bugpattern/PublicConstructorForAbstractClass)
     Did you mean 'protected Allocator(int blockSize) {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/store/FlushInfo.java:56:
 warning: [EqualsGetClass] Prefer instanceof to getClass when implementing 
Object#equals.
     public boolean equals(Object obj) {
                    ^
       (see https://errorprone.info/bugpattern/EqualsGetClass)
     Did you mean to remove this line?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/index/DocIDMerger.java:42:
 warning: [PublicConstructorForAbstractClass] Constructors of on an abstract 
class can be declared protected as there is never a need for them to be public
       public Sub(MergeState.DocMap docMap) {
              ^
       (see 
https://errorprone.info/bugpattern/PublicConstructorForAbstractClass)
     Did you mean 'protected Sub(MergeState.DocMap docMap) {'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/codecs/lucene84/Lucene84PostingsWriter.java:284:
 warning: [IntLongMath] Expression of type int may overflow before being 
assigned to a long
       posDeltaBuffer[posBufferUpto] = position - lastPosition;
                                                ^
       (see https://errorprone.info/bugpattern/IntLongMath)
     Did you mean 'posDeltaBuffer[posBufferUpto] = (long) position - 
lastPosition;'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/codecs/lucene84/Lucene84PostingsWriter.java:302:
 warning: [IntLongMath] Expression of type int may overflow before being 
assigned to a long
         offsetStartDeltaBuffer[posBufferUpto] = startOffset - lastStartOffset;
                                                             ^
       (see https://errorprone.info/bugpattern/IntLongMath)
     Did you mean 'offsetStartDeltaBuffer[posBufferUpto] = (long) startOffset - 
lastStartOffset;'?
   
/Users/vthacker/apache-work/lucene-solr/lucene/core/src/java/org/apache/lucene/codecs/lucene84/Lucene84PostingsWriter.java:303:
 warning: [IntLongMath] Expression of type int may overflow before being 
assigned to a long
         offsetLengthBuffer[posBufferUpto] = endOffset - startOffset;
                                                       ^
       (see https://errorprone.info/bugpattern/IntLongMath)
     Did you mean 'offsetLengthBuffer[posBufferUpto] = (long) endOffset - 
startOffset;'?
   100 warnings
   ```


----------------------------------------------------------------
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.

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



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

Reply via email to