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: [email protected]
For additional commands, e-mail: [email protected]