You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by da...@apache.org on 2018/05/18 03:36:28 UTC

lucene-solr:master: SOLR-12028: Remove BadApple for TestCloudRecovery

Repository: lucene-solr
Updated Branches:
  refs/heads/master 9cbaf327e -> 4a9a8397e


SOLR-12028: Remove BadApple for TestCloudRecovery


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/4a9a8397
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/4a9a8397
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/4a9a8397

Branch: refs/heads/master
Commit: 4a9a8397e458a5805c55fe494ba4b6de18233f90
Parents: 9cbaf32
Author: Cao Manh Dat <da...@apache.org>
Authored: Fri May 18 10:36:14 2018 +0700
Committer: Cao Manh Dat <da...@apache.org>
Committed: Fri May 18 10:36:14 2018 +0700

----------------------------------------------------------------------
 .../apache/solr/cloud/TestCloudRecovery.java    | 26 +++++++++++---------
 1 file changed, 14 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/4a9a8397/solr/core/src/test/org/apache/solr/cloud/TestCloudRecovery.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestCloudRecovery.java b/solr/core/src/test/org/apache/solr/cloud/TestCloudRecovery.java
index bdbb176..8cb959e 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestCloudRecovery.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestCloudRecovery.java
@@ -77,7 +77,7 @@ public class TestCloudRecovery extends SolrCloudTestCase {
   }
 
   @Test
-  @BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028") // 09-Apr-2018
+  // Removed BadApple on 18-May-2018
   public void leaderRecoverFromLogOnStartupTest() throws Exception {
     AtomicInteger countReplayLog = new AtomicInteger(0);
     DirectUpdateHandler2.commitOnClose = false;
@@ -153,32 +153,34 @@ public class TestCloudRecovery extends SolrCloudTestCase {
     assertEquals(0, resp.getResults().getNumFound());
 
     int logHeaderSize = Integer.MAX_VALUE;
-    Map<File, byte[]> contentFiles = new HashMap<>();
+    Map<String, byte[]> contentFiles = new HashMap<>();
     for (JettySolrRunner solrRunner : cluster.getJettySolrRunners()) {
       for (SolrCore solrCore : solrRunner.getCoreContainer().getCores()) {
         File tlogFolder = new File(solrCore.getUlogDir(), UpdateLog.TLOG_NAME);
         String[] tLogFiles = tlogFolder.list();
         Arrays.sort(tLogFiles);
-        File lastTLogFile = new File(tlogFolder.getAbsolutePath() + "/" + tLogFiles[tLogFiles.length - 1]);
-        byte[] tlogBytes = IOUtils.toByteArray(new FileInputStream(lastTLogFile));
-        contentFiles.put(lastTLogFile, tlogBytes);
-        logHeaderSize = Math.min(tlogBytes.length, logHeaderSize);
+        String lastTLogFile = tlogFolder.getAbsolutePath() + "/" + tLogFiles[tLogFiles.length - 1];
+        try (FileInputStream inputStream = new FileInputStream(lastTLogFile)){
+          byte[] tlogBytes = IOUtils.toByteArray(inputStream);
+          contentFiles.put(lastTLogFile, tlogBytes);
+          logHeaderSize = Math.min(tlogBytes.length, logHeaderSize);
+        }
       }
     }
 
     ChaosMonkey.stop(cluster.getJettySolrRunners());
     assertTrue("Timeout waiting for all not live", ClusterStateUtil.waitForAllReplicasNotLive(cloudClient.getZkStateReader(), 45000));
 
-    for (Map.Entry<File, byte[]> entry : contentFiles.entrySet()) {
+    for (Map.Entry<String, byte[]> entry : contentFiles.entrySet()) {
       byte[] tlogBytes = entry.getValue();
 
       if (tlogBytes.length <= logHeaderSize) continue;
-      FileOutputStream stream = new FileOutputStream(entry.getKey());
-      int skipLastBytes = Math.max(random().nextInt(tlogBytes.length - logHeaderSize), 2);
-      for (int i = 0; i < entry.getValue().length - skipLastBytes; i++) {
-        stream.write(tlogBytes[i]);
+      try (FileOutputStream stream = new FileOutputStream(entry.getKey())) {
+        int skipLastBytes = Math.max(random().nextInt(tlogBytes.length - logHeaderSize), 2);
+        for (int i = 0; i < entry.getValue().length - skipLastBytes; i++) {
+          stream.write(tlogBytes[i]);
+        }
       }
-      stream.close();
     }
 
     ChaosMonkey.start(cluster.getJettySolrRunners());