You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by fa...@apache.org on 2021/02/02 21:13:32 UTC

svn commit: r1886143 - in /poi/trunk: build.gradle src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java

Author: fanningpj
Date: Tue Feb  2 21:13:32 2021
New Revision: 1886143

URL: http://svn.apache.org/viewvc?rev=1886143&view=rev
Log:
[bug-65120] PartAlreadyExistsException when creating cell comments (after some comments removed). Thanks to Raúl Wegmann

Modified:
    poi/trunk/build.gradle
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java

Modified: poi/trunk/build.gradle
URL: http://svn.apache.org/viewvc/poi/trunk/build.gradle?rev=1886143&r1=1886142&r2=1886143&view=diff
==============================================================================
--- poi/trunk/build.gradle (original)
+++ poi/trunk/build.gradle Tue Feb  2 21:13:32 2021
@@ -160,6 +160,7 @@ subprojects {
         exclude '**/BaseTestCellUtil.class'
         exclude '**/TestUnfixedBugs.class'
         exclude '**/TestOneFile.class'
+        include '**/TestXSSFSheet.class'
 
         // Exclude Test Suites
         exclude '**/All*Tests.class'

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java?rev=1886143&r1=1886142&r2=1886143&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java Tue Feb  2 21:13:32 2021
@@ -601,8 +601,8 @@ public class XSSFSheet extends POIXMLDoc
         CTLegacyDrawing ctDrawing = getCTLegacyDrawing();
         if(ctDrawing == null) {
             if(autoCreate) {
-                //drawingNumber = #drawings.size() + 1
-                int drawingNumber = getPackagePart().getPackage().getPartsByContentType(XSSFRelation.VML_DRAWINGS.getContentType()).size() + 1;
+                int drawingNumber = getNextPartNumber(XSSFRelation.VML_DRAWINGS,
+                        getPackagePart().getPackage().getPartsByContentType(XSSFRelation.VML_DRAWINGS.getContentType()).size());
                 RelationPart rp = createRelationship(XSSFRelation.VML_DRAWINGS, XSSFFactory.getInstance(), drawingNumber, false);
                 drawing = rp.getDocumentPart();
                 String relId = rp.getRelationship().getId();

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java?rev=1886143&r1=1886142&r2=1886143&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java Tue Feb  2 21:13:32 2021
@@ -1887,7 +1887,7 @@ public final class TestXSSFSheet extends
      */
     @Test
     void testInsertCommentsToClonedSheet() throws IOException {
-    	try (Workbook wb = XSSFTestDataSamples.openSampleWorkbook("52425.xlsx")) {
+        try (Workbook wb = XSSFTestDataSamples.openSampleWorkbook("52425.xlsx")) {
             CreationHelper helper = wb.getCreationHelper();
             Sheet sheet2 = wb.createSheet("Sheet 2");
             Sheet sheet3 = wb.cloneSheet(0);
@@ -1995,4 +1995,29 @@ public final class TestXSSFSheet extends
             }
         }
     }
+
+    @Test
+    public void bug65120() throws IOException {
+        XSSFWorkbook wb = new XSSFWorkbook();
+        CreationHelper creationHelper = wb.getCreationHelper();
+
+        Sheet sheet1 = wb.createSheet();
+        Cell cell1 = sheet1.createRow(0).createCell(0);
+        Comment comment1 = sheet1.createDrawingPatriarch().createCellComment(creationHelper.createClientAnchor());
+        cell1.setCellComment(comment1);
+
+        Sheet sheet2 = wb.createSheet();
+        Cell cell2 = sheet2.createRow(0).createCell(0);
+        Comment comment2 = sheet2.createDrawingPatriarch().createCellComment(creationHelper.createClientAnchor());
+        cell2.setCellComment(comment2);
+
+        wb.removeSheetAt(0);
+
+        Sheet sheet3 = wb.createSheet();
+        Cell cell3 = sheet3.createRow(0).createCell(0);
+        Comment comment3 = sheet3.createDrawingPatriarch().createCellComment(creationHelper.createClientAnchor());
+        cell3.setCellComment(comment3);
+
+        wb.close();
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org