From d75665f1559980266e86bf3f8392612f62bcf0a8 Mon Sep 17 00:00:00 2001 From: Chris Norman Date: Mon, 22 May 2017 13:39:56 -0400 Subject: [PATCH] Fix ordering of assignments in FastQReader constructor. --- .../java/htsjdk/samtools/fastq/FastqReader.java | 2 +- .../samtools/fastq/FastqReaderWriterTest.scala | 29 +++++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/main/java/htsjdk/samtools/fastq/FastqReader.java b/src/main/java/htsjdk/samtools/fastq/FastqReader.java index 76ead119d..c5d52f8dc 100755 --- a/src/main/java/htsjdk/samtools/fastq/FastqReader.java +++ b/src/main/java/htsjdk/samtools/fastq/FastqReader.java @@ -90,8 +90,8 @@ public FastqReader(final BufferedReader reader) { public FastqReader(final File file, final BufferedReader reader,boolean skipBlankLines) { this.fastqFile = file; this.reader = reader; - this.nextRecord = readNextRecord(); this.skipBlankLines = skipBlankLines; + this.nextRecord = readNextRecord(); } public FastqReader(final File file, final BufferedReader reader) { diff --git a/src/test/scala/htsjdk/samtools/fastq/FastqReaderWriterTest.scala b/src/test/scala/htsjdk/samtools/fastq/FastqReaderWriterTest.scala index 60e08efbd..00f62e91a 100644 --- a/src/test/scala/htsjdk/samtools/fastq/FastqReaderWriterTest.scala +++ b/src/test/scala/htsjdk/samtools/fastq/FastqReaderWriterTest.scala @@ -3,7 +3,7 @@ package htsjdk.samtools.fastq import java.io.{BufferedReader, File, StringReader} import htsjdk.UnitSpec -import htsjdk.samtools.SAMUtils +import htsjdk.samtools.{SAMException, SAMUtils} import htsjdk.samtools.util.IOUtil import scala.util.Random @@ -106,6 +106,33 @@ class FastqReaderWriterTest extends UnitSpec { in.close() } + it should "honor skipBlankLines when requested" in { + val fastq = + """ + | + |@SL-XBG:1:1:4:1663#0/2 + |NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN + |+SL-XBG:1:1:4:1663#0/2 + |BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB + """.stripMargin + val reader = new BufferedReader(new StringReader(fastq)) + val in = new FastqReader(null, reader, true) + while (in.hasNext) in.next() + } + + it should "fail on blank lines when skipBlankLines is false" in { + val fastq = + """ + | + |@SL-XBG:1:1:4:1663#0/2 + |NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN + |+SL-XBG:1:1:4:1663#0/2 + |BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB + """.stripMargin + val reader = new BufferedReader(new StringReader(fastq)) + an[SAMException] shouldBe thrownBy { val in = new FastqReader(null, reader, false) } + } + it should "fail on a truncated file" in { val fastq = """