diff --git a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/naming/QualifiedName.java b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/naming/QualifiedName.java index b207abb47..55075317f 100644 --- a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/naming/QualifiedName.java +++ b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/naming/QualifiedName.java @@ -95,6 +95,9 @@ public class QualifiedName implements Comparable { } public QualifiedName append(String segment) { + if (segment == null) { + throw new IllegalArgumentException("Segment cannot be null"); + } String[] newSegments = new String[getSegmentCount() + 1]; System.arraycopy(segments, 0, newSegments, 0, segments.length); newSegments[segments.length] = segment; diff --git a/tests/org.eclipse.xtext.tests/src/org/eclipse/xtext/naming/QualifiedNameTest.java b/tests/org.eclipse.xtext.tests/src/org/eclipse/xtext/naming/QualifiedNameTest.java index 49772b0bd..1ddf2f7a7 100644 --- a/tests/org.eclipse.xtext.tests/src/org/eclipse/xtext/naming/QualifiedNameTest.java +++ b/tests/org.eclipse.xtext.tests/src/org/eclipse/xtext/naming/QualifiedNameTest.java @@ -25,6 +25,13 @@ public class QualifiedNameTest extends TestCase { fail("Exception expected"); } catch(IllegalArgumentException e) {} } + + public void testAppendNull() { + try { + QualifiedName.create().append((String) null); + fail("Exception expected"); + } catch (IllegalArgumentException e) {} + } public void testSegments() { QualifiedName qn = QualifiedName.create("foo", "bar", "baz");