From fc58f61bcc1d122e50192bfd6d9eeeaf1e8f383a Mon Sep 17 00:00:00 2001 From: Steve Huang Date: Mon, 3 Apr 2017 16:42:56 -0400 Subject: [PATCH 1/4] added check for negative length in CigarElement ctor --- src/main/java/htsjdk/samtools/CigarElement.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/htsjdk/samtools/CigarElement.java b/src/main/java/htsjdk/samtools/CigarElement.java index c645e6cc2..e2ad717e9 100644 --- a/src/main/java/htsjdk/samtools/CigarElement.java +++ b/src/main/java/htsjdk/samtools/CigarElement.java @@ -36,6 +36,7 @@ private final CigarOperator operator; public CigarElement(final int length, final CigarOperator operator) { + if (length < 0) throw new IllegalArgumentException("Cigar element being constructed with negative length: " + length); this.length = length; this.operator = operator; } From 5fef0ba2cb39f1cc7c476b9bc6df27f0da33acbc Mon Sep 17 00:00:00 2001 From: Steve Huang Date: Mon, 3 Apr 2017 16:50:11 -0400 Subject: [PATCH 2/4] added test --- .../java/htsjdk/samtools/util/CigarElementUnitTest.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/test/java/htsjdk/samtools/util/CigarElementUnitTest.java diff --git a/src/test/java/htsjdk/samtools/util/CigarElementUnitTest.java b/src/test/java/htsjdk/samtools/util/CigarElementUnitTest.java new file mode 100644 index 000000000..54cfdedfc --- /dev/null +++ b/src/test/java/htsjdk/samtools/util/CigarElementUnitTest.java @@ -0,0 +1,14 @@ +package htsjdk.samtools.util; + + +import htsjdk.samtools.CigarElement; +import htsjdk.samtools.CigarOperator; +import org.testng.annotations.Test; + +public class CigarElementUnitTest { + + @Test(expectedExceptions = IllegalArgumentException.class) + public void testNegativeLengthCheck(){ + final CigarElement element = new CigarElement(-1, CigarOperator.M); + } +} From 6553d569ca0f96f5daaa5d16346f2a19cfbaeb69 Mon Sep 17 00:00:00 2001 From: Steve Huang Date: Tue, 4 Apr 2017 12:03:52 -0400 Subject: [PATCH 3/4] improved error message by including operation type --- src/main/java/htsjdk/samtools/CigarElement.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/htsjdk/samtools/CigarElement.java b/src/main/java/htsjdk/samtools/CigarElement.java index e2ad717e9..a39adb721 100644 --- a/src/main/java/htsjdk/samtools/CigarElement.java +++ b/src/main/java/htsjdk/samtools/CigarElement.java @@ -36,7 +36,7 @@ private final CigarOperator operator; public CigarElement(final int length, final CigarOperator operator) { - if (length < 0) throw new IllegalArgumentException("Cigar element being constructed with negative length: " + length); + if (length < 0) throw new IllegalArgumentException(String.format("Cigar element being constructed with negative length: %d and operation: $s" , length, operator.name())); this.length = length; this.operator = operator; } From 939e1285af1b6968403a7328973e0c4411f12021 Mon Sep 17 00:00:00 2001 From: Steve Huang Date: Tue, 4 Apr 2017 12:04:55 -0400 Subject: [PATCH 4/4] sorry for the typo --- src/main/java/htsjdk/samtools/CigarElement.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/htsjdk/samtools/CigarElement.java b/src/main/java/htsjdk/samtools/CigarElement.java index a39adb721..016956c56 100644 --- a/src/main/java/htsjdk/samtools/CigarElement.java +++ b/src/main/java/htsjdk/samtools/CigarElement.java @@ -36,7 +36,7 @@ private final CigarOperator operator; public CigarElement(final int length, final CigarOperator operator) { - if (length < 0) throw new IllegalArgumentException(String.format("Cigar element being constructed with negative length: %d and operation: $s" , length, operator.name())); + if (length < 0) throw new IllegalArgumentException(String.format("Cigar element being constructed with negative length: %d and operation: %s" , length, operator.name())); this.length = length; this.operator = operator; }