You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@accumulo.apache.org by GitBox <gi...@apache.org> on 2018/08/28 04:01:10 UTC

[GitHub] ctubbsii closed pull request #615: Upgrade findbugs to spotbugs

ctubbsii closed pull request #615: Upgrade findbugs to spotbugs 
URL: https://github.com/apache/accumulo/pull/615
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/client/mapreduce/src/main/findbugs/exclude-filter.xml b/client/mapreduce/src/main/spotbugs/exclude-filter.xml
similarity index 100%
rename from client/mapreduce/src/main/findbugs/exclude-filter.xml
rename to client/mapreduce/src/main/spotbugs/exclude-filter.xml
diff --git a/contrib/README.findbugs b/contrib/README.spotbugs
similarity index 100%
rename from contrib/README.findbugs
rename to contrib/README.spotbugs
diff --git a/core/src/main/java/org/apache/accumulo/core/conf/PropertyType.java b/core/src/main/java/org/apache/accumulo/core/conf/PropertyType.java
index 2eaf4e5586..295ed69359 100644
--- a/core/src/main/java/org/apache/accumulo/core/conf/PropertyType.java
+++ b/core/src/main/java/org/apache/accumulo/core/conf/PropertyType.java
@@ -129,7 +129,10 @@
   URI("uri", x -> true, "A valid URI");
 
   private String shortname, format;
-  // made this transient because findbugs was complaining
+  // Field is transient because enums are Serializable, but Predicates aren't necessarily,
+  // and our lambdas certainly aren't; This shouldn't matter because enum serialization doesn't
+  // store fields, so this is a false positive in our spotbugs version
+  // see https://github.com/spotbugs/spotbugs/issues/740
   private transient Predicate<String> predicate;
 
   private PropertyType(String shortname, Predicate<String> predicate, String formatDescription) {
@@ -158,6 +161,9 @@ String getFormatDescription() {
    * @return true if value is valid or null, or if this type has no regex
    */
   public boolean isValidFormat(String value) {
+    // this can't happen because enum fields aren't serialized, so it doesn't matter if the
+    // predicate was transient or not, but it's probably not hurting anything to check and provide
+    // the helpful error message for troubleshooting, just in case
     Preconditions.checkState(predicate != null,
         "Predicate was null, maybe this enum was serialized????");
     return predicate.test(value);
diff --git a/core/src/main/findbugs/exclude-filter.xml b/core/src/main/spotbugs/exclude-filter.xml
similarity index 100%
rename from core/src/main/findbugs/exclude-filter.xml
rename to core/src/main/spotbugs/exclude-filter.xml
diff --git a/core/src/test/java/org/apache/accumulo/core/client/rfile/RFileTest.java b/core/src/test/java/org/apache/accumulo/core/client/rfile/RFileTest.java
index 8fbdca3c61..6bfd6583eb 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/rfile/RFileTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/rfile/RFileTest.java
@@ -17,6 +17,11 @@
 
 package org.apache.accumulo.core.client.rfile;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
 import java.io.File;
 import java.io.IOException;
 import java.util.AbstractMap;
@@ -60,21 +65,17 @@
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.LocalFileSystem;
 import org.apache.hadoop.io.Text;
-import org.junit.Assert;
 import org.junit.Test;
 
 import com.google.common.collect.ImmutableMap;
 
 public class RFileTest {
 
-  // method created to foil findbugs... it was complaining ret val not used when it did not matter
-  private void foo(boolean b) {}
-
   private String createTmpTestFile() throws IOException {
     File dir = new File(System.getProperty("user.dir") + "/target/rfile-test");
-    foo(dir.mkdirs());
+    assertTrue(dir.mkdirs() || dir.isDirectory());
     File testFile = File.createTempFile("test", ".rf", dir);
-    foo(testFile.delete());
+    assertTrue(testFile.delete() || !testFile.exists());
     return testFile.getAbsolutePath();
   }
 
@@ -153,22 +154,22 @@ public void testIndependance() throws Exception {
 
     while (scnIter1.hasNext() || scnIter2.hasNext()) {
       if (scnIter1.hasNext()) {
-        Assert.assertTrue(mapIter1.hasNext());
-        Assert.assertEquals(scnIter1.next(), mapIter1.next());
+        assertTrue(mapIter1.hasNext());
+        assertEquals(scnIter1.next(), mapIter1.next());
       } else {
-        Assert.assertFalse(mapIter1.hasNext());
+        assertFalse(mapIter1.hasNext());
       }
 
       if (scnIter2.hasNext()) {
-        Assert.assertTrue(mapIter2.hasNext());
-        Assert.assertEquals(scnIter2.next(), mapIter2.next());
+        assertTrue(mapIter2.hasNext());
+        assertEquals(scnIter2.next(), mapIter2.next());
       } else {
-        Assert.assertFalse(mapIter2.hasNext());
+        assertFalse(mapIter2.hasNext());
       }
     }
 
-    Assert.assertFalse(mapIter1.hasNext());
-    Assert.assertFalse(mapIter2.hasNext());
+    assertFalse(mapIter1.hasNext());
+    assertFalse(mapIter2.hasNext());
 
     scanner.close();
   }
@@ -195,11 +196,11 @@ public void testMultipleSources() throws Exception {
     TreeMap<Key,Value> expected = new TreeMap<>(testData1);
     expected.putAll(testData2);
 
-    Assert.assertEquals(expected, toMap(scanner));
+    assertEquals(expected, toMap(scanner));
 
     Range range = new Range(rowStr(3), true, rowStr(14), true);
     scanner.setRange(range);
-    Assert.assertEquals(expected.subMap(range.getStartKey(), range.getEndKey()), toMap(scanner));
+    assertEquals(expected.subMap(range.getStartKey(), range.getEndKey()), toMap(scanner));
 
     scanner.close();
   }
@@ -230,12 +231,12 @@ public void testWriterTableProperties() throws Exception {
     }
 
     // if settings are used then should create multiple index entries
-    Assert.assertTrue(count > 10);
+    assertTrue(count > 10);
 
     reader.close();
 
     Scanner scanner = RFile.newScanner().from(testFile).withFileSystem(localFs).build();
-    Assert.assertEquals(testData1, toMap(scanner));
+    assertEquals(testData1, toMap(scanner));
     scanner.close();
   }
 
@@ -265,31 +266,31 @@ public void testLocalityGroups() throws Exception {
 
     scanner.fetchColumnFamily(new Text(colStr(0)));
     scanner.fetchColumnFamily(new Text(colStr(1)));
-    Assert.assertEquals(testData1, toMap(scanner));
+    assertEquals(testData1, toMap(scanner));
 
     scanner.clearColumns();
     scanner.fetchColumnFamily(new Text(colStr(2)));
-    Assert.assertEquals(testData2, toMap(scanner));
+    assertEquals(testData2, toMap(scanner));
 
     scanner.clearColumns();
     for (int i = 3; i < 10; i++) {
       scanner.fetchColumnFamily(new Text(colStr(i)));
     }
-    Assert.assertEquals(defaultData, toMap(scanner));
+    assertEquals(defaultData, toMap(scanner));
 
     scanner.clearColumns();
-    Assert.assertEquals(createTestData(10, 10, 10), toMap(scanner));
+    assertEquals(createTestData(10, 10, 10), toMap(scanner));
 
     scanner.close();
 
     Reader reader = getReader(localFs, testFile);
     Map<String,ArrayList<ByteSequence>> lGroups = reader.getLocalityGroupCF();
-    Assert.assertTrue(lGroups.containsKey("z"));
-    Assert.assertEquals(2, lGroups.get("z").size());
-    Assert.assertTrue(lGroups.get("z").contains(new ArrayByteSequence(colStr(0))));
-    Assert.assertTrue(lGroups.get("z").contains(new ArrayByteSequence(colStr(1))));
-    Assert.assertTrue(lGroups.containsKey("h"));
-    Assert.assertEquals(Arrays.asList(new ArrayByteSequence(colStr(2))), lGroups.get("h"));
+    assertTrue(lGroups.containsKey("z"));
+    assertEquals(2, lGroups.get("z").size());
+    assertTrue(lGroups.get("z").contains(new ArrayByteSequence(colStr(0))));
+    assertTrue(lGroups.get("z").contains(new ArrayByteSequence(colStr(1))));
+    assertTrue(lGroups.containsKey("h"));
+    assertEquals(Arrays.asList(new ArrayByteSequence(colStr(2))), lGroups.get("h"));
     reader.close();
   }
 
@@ -306,7 +307,7 @@ public void testIterators() throws Exception {
     Scanner scanner = RFile.newScanner().from(testFile).withFileSystem(localFs).build();
     scanner.addScanIterator(is);
 
-    Assert.assertEquals(createTestData(7, 2, 0, 10, 10), toMap(scanner));
+    assertEquals(createTestData(7, 2, 0, 10, 10), toMap(scanner));
 
     scanner.close();
   }
@@ -332,20 +333,20 @@ public void testAuths() throws Exception {
 
     Scanner scanner = RFile.newScanner().from(testFile).withFileSystem(localFs)
         .withAuthorizations(new Authorizations("A")).build();
-    Assert.assertEquals(ImmutableMap.of(k2, v2, k3, v3), toMap(scanner));
-    Assert.assertEquals(new Authorizations("A"), scanner.getAuthorizations());
+    assertEquals(ImmutableMap.of(k2, v2, k3, v3), toMap(scanner));
+    assertEquals(new Authorizations("A"), scanner.getAuthorizations());
     scanner.close();
 
     scanner = RFile.newScanner().from(testFile).withFileSystem(localFs)
         .withAuthorizations(new Authorizations("A", "B")).build();
-    Assert.assertEquals(ImmutableMap.of(k1, v1, k2, v2, k3, v3), toMap(scanner));
-    Assert.assertEquals(new Authorizations("A", "B"), scanner.getAuthorizations());
+    assertEquals(ImmutableMap.of(k1, v1, k2, v2, k3, v3), toMap(scanner));
+    assertEquals(new Authorizations("A", "B"), scanner.getAuthorizations());
     scanner.close();
 
     scanner = RFile.newScanner().from(testFile).withFileSystem(localFs)
         .withAuthorizations(new Authorizations("B")).build();
-    Assert.assertEquals(ImmutableMap.of(k3, v3), toMap(scanner));
-    Assert.assertEquals(new Authorizations("B"), scanner.getAuthorizations());
+    assertEquals(ImmutableMap.of(k3, v3), toMap(scanner));
+    assertEquals(new Authorizations("B"), scanner.getAuthorizations());
     scanner.close();
   }
 
@@ -370,14 +371,14 @@ public void testNoSystemIters() throws Exception {
     writer.close();
 
     Scanner scanner = RFile.newScanner().from(testFile).withFileSystem(localFs).build();
-    Assert.assertFalse(scanner.iterator().hasNext());
+    assertFalse(scanner.iterator().hasNext());
     scanner.close();
 
     scanner = RFile.newScanner().from(testFile).withFileSystem(localFs).withoutSystemIterators()
         .build();
-    Assert.assertEquals(ImmutableMap.of(k2, v2, k1, v1), toMap(scanner));
+    assertEquals(ImmutableMap.of(k2, v2, k1, v1), toMap(scanner));
     scanner.setRange(new Range("r2"));
-    Assert.assertFalse(scanner.iterator().hasNext());
+    assertFalse(scanner.iterator().hasNext());
     scanner.close();
   }
 
@@ -391,25 +392,25 @@ public void testBounds() throws Exception {
     Range bounds = new Range(rowStr(3), false, null, true);
     Scanner scanner = RFile.newScanner().from(testFile).withFileSystem(localFs).withBounds(bounds)
         .build();
-    Assert.assertEquals(createTestData(4, 6, 0, 10, 10), toMap(scanner));
+    assertEquals(createTestData(4, 6, 0, 10, 10), toMap(scanner));
     scanner.close();
 
     // set an upper bound row
     bounds = new Range(null, false, rowStr(7), true);
     scanner = RFile.newScanner().from(testFile).withFileSystem(localFs).withBounds(bounds).build();
-    Assert.assertEquals(createTestData(8, 10, 10), toMap(scanner));
+    assertEquals(createTestData(8, 10, 10), toMap(scanner));
     scanner.close();
 
     // set row bounds
     bounds = new Range(rowStr(3), false, rowStr(7), true);
     scanner = RFile.newScanner().from(testFile).withFileSystem(localFs).withBounds(bounds).build();
-    Assert.assertEquals(createTestData(4, 4, 0, 10, 10), toMap(scanner));
+    assertEquals(createTestData(4, 4, 0, 10, 10), toMap(scanner));
     scanner.close();
 
     // set a row family bound
     bounds = Range.exact(rowStr(3), colStr(5));
     scanner = RFile.newScanner().from(testFile).withFileSystem(localFs).withBounds(bounds).build();
-    Assert.assertEquals(createTestData(3, 1, 5, 1, 10), toMap(scanner));
+    assertEquals(createTestData(3, 1, 5, 1, 10), toMap(scanner));
     scanner.close();
   }
 
@@ -437,11 +438,11 @@ public void testScannerTableProperties() throws Exception {
     // pass in table config that has versioning iterator configured
     Scanner scanner = RFile.newScanner().from(testFile).withFileSystem(localFs)
         .withTableProperties(ntc.getProperties()).build();
-    Assert.assertEquals(ImmutableMap.of(k2, v2), toMap(scanner));
+    assertEquals(ImmutableMap.of(k2, v2), toMap(scanner));
     scanner.close();
 
     scanner = RFile.newScanner().from(testFile).withFileSystem(localFs).build();
-    Assert.assertEquals(ImmutableMap.of(k2, v2, k1, v1), toMap(scanner));
+    assertEquals(ImmutableMap.of(k2, v2, k1, v1), toMap(scanner));
     scanner.close();
   }
 
@@ -474,13 +475,13 @@ public void testSampling() throws Exception {
       }
     }
 
-    Assert.assertTrue(sampleData.size() < testData1.size());
+    assertTrue(sampleData.size() < testData1.size());
 
-    Assert.assertEquals(sampleData, toMap(scanner));
+    assertEquals(sampleData, toMap(scanner));
 
     scanner.clearSamplerConfiguration();
 
-    Assert.assertEquals(testData1, toMap(scanner));
+    assertEquals(testData1, toMap(scanner));
 
   }
 
@@ -500,7 +501,7 @@ public void testAppendScanner() throws Exception {
     scanner.close();
 
     scanner = RFile.newScanner().from(testFile2).withFileSystem(localFs).build();
-    Assert.assertEquals(testData, toMap(scanner));
+    assertEquals(testData, toMap(scanner));
     scanner.close();
   }
 
@@ -519,9 +520,9 @@ public void testCache() throws Exception {
       int r = rand.nextInt(10000);
       scanner.setRange(new Range(rowStr(r)));
       Iterator<Entry<Key,Value>> iter = scanner.iterator();
-      Assert.assertTrue(iter.hasNext());
-      Assert.assertEquals(rowStr(r), iter.next().getKey().getRow().toString());
-      Assert.assertFalse(iter.hasNext());
+      assertTrue(iter.hasNext());
+      assertEquals(rowStr(r), iter.next().getKey().getRow().toString());
+      assertFalse(iter.hasNext());
     }
 
     scanner.close();
@@ -545,30 +546,30 @@ public void testSummaries() throws Exception {
 
     // verify summary data
     Collection<Summary> summaries = RFile.summaries().from(testFile).withFileSystem(localFs).read();
-    Assert.assertEquals(2, summaries.size());
+    assertEquals(2, summaries.size());
     for (Summary summary : summaries) {
-      Assert.assertEquals(0, summary.getFileStatistics().getInaccurate());
-      Assert.assertEquals(1, summary.getFileStatistics().getTotal());
+      assertEquals(0, summary.getFileStatistics().getInaccurate());
+      assertEquals(1, summary.getFileStatistics().getTotal());
       String className = summary.getSummarizerConfiguration().getClassName();
       CounterSummary counterSummary = new CounterSummary(summary);
       if (className.equals(FamilySummarizer.class.getName())) {
         Map<String,Long> counters = counterSummary.getCounters();
         Map<String,Long> expected = ImmutableMap.of("0000", 200L, "0001", 200L, "0002", 200L,
             "0003", 200L);
-        Assert.assertEquals(expected, counters);
+        assertEquals(expected, counters);
       } else if (className.equals(VisibilitySummarizer.class.getName())) {
         Map<String,Long> counters = counterSummary.getCounters();
         Map<String,Long> expected = ImmutableMap.of("A&B", 400L, "A&B&C", 400L);
-        Assert.assertEquals(expected, counters);
+        assertEquals(expected, counters);
       } else {
-        Assert.fail("Unexpected classname " + className);
+        fail("Unexpected classname " + className);
       }
     }
 
     // check if writing summary data impacted normal rfile functionality
     Scanner scanner = RFile.newScanner().from(testFile).withFileSystem(localFs)
         .withAuthorizations(new Authorizations("A", "B", "C")).build();
-    Assert.assertEquals(testData1, toMap(scanner));
+    assertEquals(testData1, toMap(scanner));
     scanner.close();
 
     String testFile2 = createTmpTestFile();
@@ -580,23 +581,23 @@ public void testSummaries() throws Exception {
 
     // verify reading summaries from multiple files works
     summaries = RFile.summaries().from(testFile, testFile2).withFileSystem(localFs).read();
-    Assert.assertEquals(2, summaries.size());
+    assertEquals(2, summaries.size());
     for (Summary summary : summaries) {
-      Assert.assertEquals(0, summary.getFileStatistics().getInaccurate());
-      Assert.assertEquals(2, summary.getFileStatistics().getTotal());
+      assertEquals(0, summary.getFileStatistics().getInaccurate());
+      assertEquals(2, summary.getFileStatistics().getTotal());
       String className = summary.getSummarizerConfiguration().getClassName();
       CounterSummary counterSummary = new CounterSummary(summary);
       if (className.equals(FamilySummarizer.class.getName())) {
         Map<String,Long> counters = counterSummary.getCounters();
         Map<String,Long> expected = ImmutableMap.of("0000", 400L, "0001", 400L, "0002", 400L,
             "0003", 400L);
-        Assert.assertEquals(expected, counters);
+        assertEquals(expected, counters);
       } else if (className.equals(VisibilitySummarizer.class.getName())) {
         Map<String,Long> counters = counterSummary.getCounters();
         Map<String,Long> expected = ImmutableMap.of("A&B", 800L, "A&B&C", 800L);
-        Assert.assertEquals(expected, counters);
+        assertEquals(expected, counters);
       } else {
-        Assert.fail("Unexpected classname " + className);
+        fail("Unexpected classname " + className);
       }
     }
 
@@ -671,19 +672,19 @@ public void testSummaries() throws Exception {
   }
 
   private void checkSummaries(Collection<Summary> summaries, Map<String,Long> expected, int extra) {
-    Assert.assertEquals(1, summaries.size());
+    assertEquals(1, summaries.size());
     for (Summary summary : summaries) {
-      Assert.assertEquals(extra, summary.getFileStatistics().getInaccurate());
-      Assert.assertEquals(extra, summary.getFileStatistics().getExtra());
-      Assert.assertEquals(2, summary.getFileStatistics().getTotal());
+      assertEquals(extra, summary.getFileStatistics().getInaccurate());
+      assertEquals(extra, summary.getFileStatistics().getExtra());
+      assertEquals(2, summary.getFileStatistics().getTotal());
       String className = summary.getSummarizerConfiguration().getClassName();
       CounterSummary counterSummary = new CounterSummary(summary);
       if (className.equals(VisibilitySummarizer.class.getName())) {
         Map<String,Long> counters = counterSummary.getCounters();
 
-        Assert.assertEquals(expected, counters);
+        assertEquals(expected, counters);
       } else {
-        Assert.fail("Unexpected classname " + className);
+        fail("Unexpected classname " + className);
       }
     }
   }
@@ -837,7 +838,7 @@ public void testMultipleFilesAndCache() throws Exception {
 
     Scanner scanner = RFile.newScanner().from(files.toArray(new String[files.size()]))
         .withFileSystem(localFs).withIndexCache(1000000).withDataCache(10000000).build();
-    Assert.assertEquals(testData, toMap(scanner));
+    assertEquals(testData, toMap(scanner));
     scanner.close();
   }
 }
diff --git a/minicluster/src/main/findbugs/exclude-filter.xml b/minicluster/src/main/spotbugs/exclude-filter.xml
similarity index 100%
rename from minicluster/src/main/findbugs/exclude-filter.xml
rename to minicluster/src/main/spotbugs/exclude-filter.xml
diff --git a/pom.xml b/pom.xml
index 9f6f0ae6bc..d980bb1189 100644
--- a/pom.xml
+++ b/pom.xml
@@ -122,7 +122,6 @@
     <extraReleaseArguments />
     <failsafe.excludedGroups />
     <failsafe.groups />
-    <findbugs.version>3.0.5</findbugs.version>
     <!-- surefire/failsafe plugin option -->
     <forkCount>1</forkCount>
     <hadoop.version>3.0.2</hadoop.version>
@@ -793,9 +792,9 @@
           </configuration>
         </plugin>
         <plugin>
-          <groupId>org.codehaus.mojo</groupId>
-          <artifactId>findbugs-maven-plugin</artifactId>
-          <version>${findbugs.version}</version>
+          <groupId>com.github.spotbugs</groupId>
+          <artifactId>spotbugs-maven-plugin</artifactId>
+          <version>3.1.3</version>
           <configuration>
             <xmlOutput>true</xmlOutput>
             <effort>Max</effort>
@@ -1322,11 +1321,11 @@
         </executions>
       </plugin>
       <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>findbugs-maven-plugin</artifactId>
+        <groupId>com.github.spotbugs</groupId>
+        <artifactId>spotbugs-maven-plugin</artifactId>
         <executions>
           <execution>
-            <id>run-findbugs</id>
+            <id>run-spotbugs</id>
             <goals>
               <goal>check</goal>
             </goals>
@@ -1385,7 +1384,6 @@
         <apilyzer.skip>true</apilyzer.skip>
         <checkstyle.skip>true</checkstyle.skip>
         <enforcer.skip>true</enforcer.skip>
-        <findbugs.skip>true</findbugs.skip>
         <formatter.skip>true</formatter.skip>
         <impsort.skip>true</impsort.skip>
         <maven.plugin.skip>true</maven.plugin.skip>
@@ -1395,6 +1393,7 @@
         <skipITs>true</skipITs>
         <skipTests>true</skipTests>
         <sort.skip>true</sort.skip>
+        <spotbugs.skip>true</spotbugs.skip>
         <warbucks.skip>true</warbucks.skip>
       </properties>
     </profile>
@@ -1588,9 +1587,9 @@
       <properties>
         <!-- some properties to make the release build a bit faster -->
         <checkstyle.skip>true</checkstyle.skip>
-        <findbugs.skip>true</findbugs.skip>
         <skipITs>true</skipITs>
         <skipTests>true</skipTests>
+        <spotbugs.skip>true</spotbugs.skip>
       </properties>
     </profile>
     <profile>
@@ -1697,14 +1696,14 @@
       </build>
     </profile>
     <profile>
-      <id>add-findbugs-excludes</id>
+      <id>add-spotbugs-excludes</id>
       <activation>
         <file>
-          <exists>src/main/findbugs/exclude-filter.xml</exists>
+          <exists>src/main/spotbugs/exclude-filter.xml</exists>
         </file>
       </activation>
       <properties>
-        <findbugs.excludeFilterFile>src/main/findbugs/exclude-filter.xml</findbugs.excludeFilterFile>
+        <spotbugs.excludeFilterFile>src/main/spotbugs/exclude-filter.xml</spotbugs.excludeFilterFile>
       </properties>
     </profile>
     <profile>
diff --git a/proxy/src/main/findbugs/exclude-filter.xml b/proxy/src/main/spotbugs/exclude-filter.xml
similarity index 100%
rename from proxy/src/main/findbugs/exclude-filter.xml
rename to proxy/src/main/spotbugs/exclude-filter.xml
diff --git a/server/base/src/main/findbugs/exclude-filter.xml b/server/base/src/main/spotbugs/exclude-filter.xml
similarity index 100%
rename from server/base/src/main/findbugs/exclude-filter.xml
rename to server/base/src/main/spotbugs/exclude-filter.xml
diff --git a/server/gc/src/main/findbugs/exclude-filter.xml b/server/gc/src/main/spotbugs/exclude-filter.xml
similarity index 100%
rename from server/gc/src/main/findbugs/exclude-filter.xml
rename to server/gc/src/main/spotbugs/exclude-filter.xml
diff --git a/server/master/src/main/findbugs/exclude-filter.xml b/server/master/src/main/spotbugs/exclude-filter.xml
similarity index 100%
rename from server/master/src/main/findbugs/exclude-filter.xml
rename to server/master/src/main/spotbugs/exclude-filter.xml
diff --git a/server/tracer/src/main/findbugs/exclude-filter.xml b/server/tracer/src/main/spotbugs/exclude-filter.xml
similarity index 100%
rename from server/tracer/src/main/findbugs/exclude-filter.xml
rename to server/tracer/src/main/spotbugs/exclude-filter.xml
diff --git a/server/tserver/src/main/findbugs/exclude-filter.xml b/server/tserver/src/main/spotbugs/exclude-filter.xml
similarity index 100%
rename from server/tserver/src/main/findbugs/exclude-filter.xml
rename to server/tserver/src/main/spotbugs/exclude-filter.xml
diff --git a/shell/src/main/findbugs/exclude-filter.xml b/shell/src/main/spotbugs/exclude-filter.xml
similarity index 100%
rename from shell/src/main/findbugs/exclude-filter.xml
rename to shell/src/main/spotbugs/exclude-filter.xml
diff --git a/test/src/main/java/org/apache/accumulo/test/InMemoryMapIT.java b/test/src/main/java/org/apache/accumulo/test/InMemoryMapIT.java
index dac4442599..9b59e3c011 100644
--- a/test/src/main/java/org/apache/accumulo/test/InMemoryMapIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/InMemoryMapIT.java
@@ -98,7 +98,7 @@ public static void ensureNativeLibrary() throws FileNotFoundException {
       fail("Missing the native library from " + nativeMapLocation.getAbsolutePath()
           + "\nYou need to build the libaccumulo binary first. "
           + "\nTry running 'mvn clean verify -Dit.test=InMemoryMapIT -Dtest=foo"
-          + " -DfailIfNoTests=false -Dfindbugs.skip -Dcheckstyle.skip'");
+          + " -DfailIfNoTests=false -Dspotbugs.skip -Dcheckstyle.skip'");
     }
   }
 
diff --git a/test/src/main/java/org/apache/accumulo/test/ShellServerIT.java b/test/src/main/java/org/apache/accumulo/test/ShellServerIT.java
index 73bee7d441..6ba505b54e 100644
--- a/test/src/main/java/org/apache/accumulo/test/ShellServerIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/ShellServerIT.java
@@ -85,7 +85,6 @@
 import org.apache.hadoop.tools.DistCp;
 import org.junit.After;
 import org.junit.AfterClass;
-import org.junit.Assert;
 import org.junit.Assume;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -855,14 +854,13 @@ public void createTableWithProperties() throws Exception {
     Connector connector = getConnector();
     for (Entry<String,String> entry : connector.tableOperations().getProperties(table)) {
       if (entry.getKey().equals("table.custom.description"))
-        Assert.assertEquals("Initial property was not set correctly", "description",
-            entry.getValue());
+        assertEquals("Initial property was not set correctly", "description", entry.getValue());
 
       if (entry.getKey().equals("table.custom.testProp"))
-        Assert.assertEquals("Initial property was not set correctly", "testProp", entry.getValue());
+        assertEquals("Initial property was not set correctly", "testProp", entry.getValue());
 
       if (entry.getKey().equals(Property.TABLE_SPLIT_THRESHOLD.getKey()))
-        Assert.assertEquals("Initial property was not set correctly", "10K", entry.getValue());
+        assertEquals("Initial property was not set correctly", "10K", entry.getValue());
 
     }
     ts.exec("deletetable -f " + table);
@@ -1776,14 +1774,12 @@ public void scans() throws Exception {
   }
 
   @Test
-  public void scansWithClassLoaderContext() throws Exception {
+  public void scansWithClassLoaderContext() throws IOException {
     try {
       Class.forName(VALUE_REVERSING_ITERATOR);
       fail("ValueReversingIterator already on the classpath");
-    } catch (Exception e) {
-      // Do nothing here, This is success. The following line is here
-      // so that findbugs doesn't have a stroke.
-      assertTrue(true);
+    } catch (ClassNotFoundException e) {
+      // expected; iterator is already on the class path
     }
     ts.exec("createtable t");
     // Assert that the TabletServer does not know anything about our class
@@ -1916,7 +1912,7 @@ public void testScanTableWithIterSetWithoutProfile() throws Exception {
   private static final String COLUMN_FAMILY_COUNTER_ITERATOR = "org.apache.accumulo.core.iterators"
       + ".ColumnFamilyCounter";
 
-  private void setupRealContextPath() throws Exception {
+  private void setupRealContextPath() throws IOException {
     // Copy the test iterators jar to tmp
     Path baseDir = new Path(System.getProperty("user.dir"));
     Path targetDir = new Path(baseDir, "target");
@@ -1926,7 +1922,7 @@ private void setupRealContextPath() throws Exception {
     fs.copyFromLocalFile(jarPath, dstPath);
   }
 
-  private void setupFakeContextPath() throws Exception {
+  private void setupFakeContextPath() throws IOException {
     // Copy the test iterators jar to tmp
     Path baseDir = new Path(System.getProperty("user.dir"));
     Path targetDir = new Path(baseDir, "target");
@@ -2005,12 +2001,11 @@ private String getTableId(String tableName) throws Exception {
   }
 
   private static void assertMatches(String output, String pattern) {
-    Assert.assertTrue("Pattern " + pattern + " did not match output : " + output,
-        output.matches(pattern));
+    assertTrue("Pattern " + pattern + " did not match output : " + output, output.matches(pattern));
   }
 
   private static void assertNotContains(String output, String subsequence) {
-    Assert.assertFalse("Expected '" + subsequence + "' would not occur in output : " + output,
+    assertFalse("Expected '" + subsequence + "' would not occur in output : " + output,
         output.contains(subsequence));
   }
 
@@ -2140,8 +2135,8 @@ public void testCreateTableWithLocalityGroups() throws Exception {
     Map<String,Set<Text>> lMap = connector.tableOperations().getLocalityGroups(table);
     Set<Text> expectedColFams = new HashSet<>(Arrays.asList(new Text("fam1"), new Text("fam2")));
     for (Entry<String,Set<Text>> entry : lMap.entrySet()) {
-      Assert.assertEquals("locg1", entry.getKey());
-      Assert.assertTrue(entry.getValue().containsAll(expectedColFams));
+      assertEquals("locg1", entry.getKey());
+      assertTrue(entry.getValue().containsAll(expectedColFams));
     }
     ts.exec("deletetable -f " + table);
   }
@@ -2157,12 +2152,12 @@ public void testCreateTableWithMultipleLocalityGroups() throws Exception {
     ts.exec("createtable " + table + " -l locg1=fam1,fam2 locg2=colfam1", true);
     Connector connector = getConnector();
     Map<String,Set<Text>> lMap = connector.tableOperations().getLocalityGroups(table);
-    Assert.assertTrue(lMap.keySet().contains("locg1"));
-    Assert.assertTrue(lMap.keySet().contains("locg2"));
+    assertTrue(lMap.keySet().contains("locg1"));
+    assertTrue(lMap.keySet().contains("locg2"));
     Set<Text> expectedColFams1 = new HashSet<>(Arrays.asList(new Text("fam1"), new Text("fam2")));
     Set<Text> expectedColFams2 = new HashSet<>(Arrays.asList(new Text("colfam1")));
-    Assert.assertTrue(lMap.get("locg1").containsAll(expectedColFams1));
-    Assert.assertTrue(lMap.get("locg2").containsAll(expectedColFams2));
+    assertTrue(lMap.get("locg1").containsAll(expectedColFams1));
+    assertTrue(lMap.get("locg2").containsAll(expectedColFams2));
     ts.exec("deletetable -f " + table);
   }
 
@@ -2192,12 +2187,12 @@ public void testCreateTableWithIterators() throws Exception {
     // the fact that setshelliter extends setiter, which does require a table argument.
     ts.exec("createtable " + tmpTable, true);
     String output = ts.exec("tables");
-    Assert.assertTrue(output.contains(tmpTable));
+    assertTrue(output.contains(tmpTable));
 
     ts.input.set("\n5000\n\n");
     ts.exec("setshelliter -n itname -p 10 -pn profile1 -ageoff", true);
     output = ts.exec("listshelliter");
-    Assert.assertTrue(output.contains("Profile : profile1"));
+    assertTrue(output.contains("Profile : profile1"));
 
     // create table making use of the iterator profile
     ts.exec("createtable " + table + " -i profile1:scan,minc", true);
@@ -2225,17 +2220,17 @@ public void testCreateTableWithMultipleIterators() throws Exception {
     // the fact that setshelliter extends setiter, which does require a table argument.
     ts.exec("createtable " + tmpTable, true);
     String output = ts.exec("tables");
-    Assert.assertTrue(output.contains(tmpTable));
+    assertTrue(output.contains(tmpTable));
 
     ts.input.set("\n5000\n\n");
     ts.exec("setshelliter -n itname -p 10 -pn profile1 -ageoff", true);
     output = ts.exec("listshelliter");
-    Assert.assertTrue(output.contains("Profile : profile1"));
+    assertTrue(output.contains("Profile : profile1"));
 
     ts.input.set("2\n");
     ts.exec("setshelliter -n iter2 -p 11 -pn profile2 -vers", true);
     output = ts.exec("listshelliter");
-    Assert.assertTrue(output.contains("Profile : profile2"));
+    assertTrue(output.contains("Profile : profile2"));
 
     // create table making use of the iterator profiles
     ts.exec("createtable " + table + " -i profile1:scan,minc profile2:all ", true);
@@ -2244,12 +2239,12 @@ public void testCreateTableWithMultipleIterators() throws Exception {
     ts.exec("sleep 6", true);
     ts.exec("scan", true, "", true);
     output = ts.exec("listiter -t " + table + " -all");
-    Assert.assertTrue(output.contains("Iterator itname, scan scope options"));
-    Assert.assertTrue(output.contains("Iterator itname, minc scope options"));
-    Assert.assertFalse(output.contains("Iterator itname, majc scope options"));
-    Assert.assertTrue(output.contains("Iterator iter2, scan scope options"));
-    Assert.assertTrue(output.contains("Iterator iter2, minc scope options"));
-    Assert.assertTrue(output.contains("Iterator iter2, majc scope options"));
+    assertTrue(output.contains("Iterator itname, scan scope options"));
+    assertTrue(output.contains("Iterator itname, minc scope options"));
+    assertFalse(output.contains("Iterator itname, majc scope options"));
+    assertTrue(output.contains("Iterator iter2, scan scope options"));
+    assertTrue(output.contains("Iterator iter2, minc scope options"));
+    assertTrue(output.contains("Iterator iter2, majc scope options"));
     ts.exec("deletetable -f " + table);
     ts.exec("deletetable -f " + tmpTable);
   }
@@ -2260,11 +2255,11 @@ public void testCreateTableWithIteratorsBadArguments() throws IOException {
     final String table = name.getMethodName();
     ts.exec("createtable " + tmpTable, true);
     String output = ts.exec("tables");
-    Assert.assertTrue(output.contains(tmpTable));
+    assertTrue(output.contains(tmpTable));
     ts.input.set("\n5000\n\n");
     ts.exec("setshelliter -n itname -p 10 -pn profile1 -ageoff", true);
     output = ts.exec("listshelliter");
-    Assert.assertTrue(output.contains("Profile : profile1"));
+    assertTrue(output.contains("Profile : profile1"));
     // test various bad argument calls
     ts.exec("createtable " + table + " -i noprofile:scan,minc", false);
     ts.exec("createtable " + table + " -i profile1:scan,minc,all,majc", false);
diff --git a/test/src/main/findbugs/exclude-filter.xml b/test/src/main/spotbugs/exclude-filter.xml
similarity index 100%
rename from test/src/main/findbugs/exclude-filter.xml
rename to test/src/main/spotbugs/exclude-filter.xml


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services