From: PJ Fanning Date: Sun, 22 May 2022 08:43:06 +0000 (+0000) Subject: [bug-66080] XWPFNumbering.addAbstractNum uses abstract numberings count as id X-Git-Tag: REL_5_2_3~320 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=b9d8bb01ec9bd27f24ddd973f596057ed0c6ba6d;p=poi.git [bug-66080] XWPFNumbering.addAbstractNum uses abstract numberings count as id git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1901113 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFBugs.java b/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFBugs.java index 9b312603bd..edfb986e99 100644 --- a/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFBugs.java +++ b/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFBugs.java @@ -268,6 +268,26 @@ class TestXWPFBugs { } } + @Test + void test66080() throws IOException { + try (XWPFDocument doc = new XWPFDocument()) { + XWPFNumbering numbering = doc.createNumbering(); + + // Add abstract numbering with id 1 + addNumberingWithAbstractId(numbering, 1); + + // Add abstract numbering with auto-generated id + numbering.addAbstractNum(new XWPFAbstractNum()); + + // Check that all abstract numbering ids are unique + long uniqueIdCount = numbering + .getAbstractNums().stream() + .map(e -> e.getCTAbstractNum().getAbstractNumId().intValue()) + .distinct().count(); + assertEquals(numbering.getAbstractNums().size(), uniqueIdCount); + } + } + private static void addNumberingWithAbstractId(XWPFNumbering documentNumbering, int id){ // create a numbering scheme CTAbstractNum cTAbstractNum = CTAbstractNum.Factory.newInstance();