From 922b3949afc188644776b70acb8a1363f640f610 Mon Sep 17 00:00:00 2001
From: bow <bow@bow.web.id>
Date: Mon, 16 Feb 2015 10:18:40 +0100
Subject: [PATCH] Open and close handlers properly

---
 .../nl/lumc/sasc/biopet/tools/FastqSync.scala | 30 +++++++++++--------
 1 file changed, 18 insertions(+), 12 deletions(-)

diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/FastqSync.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/FastqSync.scala
index c01ddf388..5096bdea8 100644
--- a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/FastqSync.scala
+++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/FastqSync.scala
@@ -165,8 +165,6 @@ object FastqSync extends ToolCommand {
       }
 
     syncIter(pre.iterator.asScala.toStream, seqA.iterator.asScala.toStream, seqB.iterator.asScala.toStream)
-    seqOutA.close()
-    seqOutB.close()
 
     (numDiscA, numDiscB, numKept)
   }
@@ -252,15 +250,23 @@ object FastqSync extends ToolCommand {
 
     val commandArgs: Args = parseArgs(args)
 
-    val (numDiscA, numDiscB, numKept) = syncFastq(
-      new FastqReader(commandArgs.refFastq),
-      new FastqReader(commandArgs.inputFastq1),
-      new FastqReader(commandArgs.inputFastq2),
-      new AsyncFastqWriter(new BasicFastqWriter(commandArgs.outputFastq1), 3000),
-      new AsyncFastqWriter(new BasicFastqWriter(commandArgs.outputFastq2), 3000))
-
-    println(s"Filtered $numDiscA reads from first read file.")
-    println(s"Filtered $numDiscB reads from second read file.")
-    println(s"Synced files contain $numKept reads.")
+    val refReader = new FastqReader(commandArgs.refFastq)
+    val AReader = new FastqReader(commandArgs.inputFastq1)
+    val BReader = new FastqReader(commandArgs.inputFastq2)
+    val AWriter = new AsyncFastqWriter(new BasicFastqWriter(commandArgs.outputFastq1), 3000)
+    val BWriter = new AsyncFastqWriter(new BasicFastqWriter(commandArgs.outputFastq2), 3000)
+
+    try {
+      val (numDiscA, numDiscB, numKept) = syncFastq(refReader, AReader, BReader, AWriter, BWriter)
+      println(s"Filtered $numDiscA reads from first read file.")
+      println(s"Filtered $numDiscB reads from second read file.")
+      println(s"Synced files contain $numKept reads.")
+    } finally {
+      refReader.close()
+      AReader.close()
+      BReader.close()
+      AWriter.close()
+      BWriter.close()
+    }
   }
 }
-- 
GitLab