DL-151: TestBKLogReadHandler#testGetFirstDLSNWithOpenLedger is flaky

- Flush/Commit records only after the data are written
- Disable immediate flush
- Reduce num writes from 100 to 10

Author: Sijie Guo <sijieg@twitter.com>

Reviewers: Leigh Stewart <lstewart@apache.org>

Closes #84 from sijie/sijie/FixTestGetFirstDLSNWithOpenLedger
diff --git a/distributedlog-core/src/test/java/com/twitter/distributedlog/TestBKLogReadHandler.java b/distributedlog-core/src/test/java/com/twitter/distributedlog/TestBKLogReadHandler.java
index 51d0552..48c07ed 100644
--- a/distributedlog-core/src/test/java/com/twitter/distributedlog/TestBKLogReadHandler.java
+++ b/distributedlog-core/src/test/java/com/twitter/distributedlog/TestBKLogReadHandler.java
@@ -164,10 +164,10 @@
 
         DistributedLogConfiguration confLocal = new DistributedLogConfiguration();
         confLocal.loadConf(conf);
-        confLocal.setImmediateFlushEnabled(true);
+        confLocal.setImmediateFlushEnabled(false);
         confLocal.setOutputBufferSize(0);
 
-        int numEntriesPerSegment = 100;
+        int numEntriesPerSegment = 10;
         DistributedLogManager dlm1 = createNewDLM(confLocal, dlName);
         long txid = 1;
 
@@ -177,15 +177,14 @@
             futures.add(out.write(DLMTestUtil.getLogRecordInstance(txid)));
             ++txid;
         }
-        for (Future<DLSN> future : futures) {
-            Await.result(future);
-        }
-
-        BKLogReadHandler readHandler =
-            ((BKDistributedLogManager) dlm1).createReadHandler();
+        FutureUtils.result(Future.collect(futures));
+        // commit
+        LogRecord controlRecord = new LogRecord(txid, DistributedLogConstants.CONTROL_RECORD_CONTENT);
+        controlRecord.setControl();
+        FutureUtils.result(out.write(controlRecord));
 
         DLSN last = dlm1.getLastDLSN();
-        assertEquals(new DLSN(1,99,0), last);
+        assertEquals(new DLSN(1,9,0), last);
         DLSN first = Await.result(dlm1.getFirstDLSNAsync());
         assertEquals(new DLSN(1,0,0), first);
         Utils.close(out);