diff --git a/src/org/olap4j/mdx/NameSegment.java b/src/org/olap4j/mdx/NameSegment.java index 16997e9..d2ff3b1 100644 --- a/src/org/olap4j/mdx/NameSegment.java +++ b/src/org/olap4j/mdx/NameSegment.java @@ -42,6 +42,9 @@ public NameSegment( this.region = region; this.name = name; this.quoting = quoting; + if (name == null) { + throw new NullPointerException(); + } if (!(quoting == Quoting.QUOTED || quoting == Quoting.UNQUOTED)) { throw new IllegalArgumentException(); } diff --git a/testsrc/org/olap4j/mdx/MdxTest.java b/testsrc/org/olap4j/mdx/MdxTest.java index 23e4864..e785f3f 100644 --- a/testsrc/org/olap4j/mdx/MdxTest.java +++ b/testsrc/org/olap4j/mdx/MdxTest.java @@ -133,14 +133,16 @@ public void testIdentifierOfNames() { segments.get(2).getQuoting()); assertEquals( - "xxx", + "[string].[with].[a [bracket]] in it]", identifierNode.toString()); - // Empty array is valid. (I don't feel strongly about this.) - identifierNode = - IdentifierNode.ofNames(); - assertEquals(0, identifierNode.getSegmentList().size()); - assertEquals("", identifierNode.toString()); + // Empty array is invalid. + try { + identifierNode = IdentifierNode.ofNames(); + fail("expected error, got " + identifierNode); + } catch (IllegalArgumentException e) { + // ok + } // Array containing null is not valid. try {