diff --git a/src/main/java/htsjdk/samtools/util/IntervalList.java b/src/main/java/htsjdk/samtools/util/IntervalList.java index 9bfc718f9..f9bfe05ca 100644 --- a/src/main/java/htsjdk/samtools/util/IntervalList.java +++ b/src/main/java/htsjdk/samtools/util/IntervalList.java @@ -356,11 +356,9 @@ static Interval merge(final SortedSet intervals, final boolean concate end = Math.max(end, i.getEnd()); } - if (concatenateNames) { - if (names.isEmpty()) name = null; - else name = StringUtil.join("|", names); - } - else { name = names.iterator().next(); } + if (names.isEmpty()) name = null; + else if (concatenateNames) name = StringUtil.join("|", names); + else name = names.iterator().next(); return new Interval(chrom, start, end, neg, name); } diff --git a/src/test/java/htsjdk/samtools/util/IntervalListTest.java b/src/test/java/htsjdk/samtools/util/IntervalListTest.java index 6c5fcd43c..3d919e881 100644 --- a/src/test/java/htsjdk/samtools/util/IntervalListTest.java +++ b/src/test/java/htsjdk/samtools/util/IntervalListTest.java @@ -517,4 +517,16 @@ public void changeHeader() { Assert.assertTrue(false); } + + @Test public void uniqueIntervalsWithoutNames() { + final IntervalList test = new IntervalList(this.fileHeader); + test.add(new Interval("1", 100, 200)); + test.add(new Interval("1", 500, 600)); + test.add(new Interval("1", 550, 700)); + + for (final boolean concat : new boolean[]{true, false}) { + final IntervalList unique = test.uniqued(concat); + Assert.assertEquals(unique.size(), 2); + } + } }