diff --git a/tool/formula/src/main/java/org/openscience/cdk/formula/MolecularFormulaRange.java b/tool/formula/src/main/java/org/openscience/cdk/formula/MolecularFormulaRange.java index 3dc2d5ea773..d50d3651213 100644 --- a/tool/formula/src/main/java/org/openscience/cdk/formula/MolecularFormulaRange.java +++ b/tool/formula/src/main/java/org/openscience/cdk/formula/MolecularFormulaRange.java @@ -64,6 +64,10 @@ public MolecularFormulaRange() { * */ public void addIsotope(IIsotope isotope, int countMin, int countMax) { + + if (isotope == null) + throw new IllegalArgumentException("Isotope must not be null"); + boolean flag = false; for (Iterator it = isotopes().iterator(); it.hasNext();) { IIsotope thisIsotope = it.next(); diff --git a/tool/formula/src/test/java/org/openscience/cdk/formula/MolecularFormulaRangeTest.java b/tool/formula/src/test/java/org/openscience/cdk/formula/MolecularFormulaRangeTest.java index 71669a3977f..b48c6253ab4 100644 --- a/tool/formula/src/test/java/org/openscience/cdk/formula/MolecularFormulaRangeTest.java +++ b/tool/formula/src/test/java/org/openscience/cdk/formula/MolecularFormulaRangeTest.java @@ -375,4 +375,17 @@ public void testClone_Isotopes() throws Exception { Assert.assertEquals(8, ((MolecularFormulaRange) clone).getIsotopeCountMax(flu)); Assert.assertEquals(10, ((MolecularFormulaRange) clone).getIsotopeCountMax(h1)); } + + /** + * Test what happens when null isotope is added to MF range. + */ + @Test(expected=IllegalArgumentException.class) + public void testNull() throws Exception { + MolecularFormulaRange mfRange = new MolecularFormulaRange(); + IIsotope carb = builder.newInstance(IIsotope.class, "C"); + IIsotope nul = null; + mfRange.addIsotope(carb, 2, 5); + mfRange.addIsotope(nul, 3, 7); + } + }