Author: fanningpj
Date: Wed Jul 12 12:25:01 2023
New Revision: 1910949
URL: http://svn.apache.org/viewvc?rev=1910949&view=rev
Log:
[bug-66675] fix issue with writing xlsx (core properties being added twice)
Added:
poi/trunk/test-data/spreadsheet/bug66675.xlsx (with props)
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/OPCPackage.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/ZipPackage.java
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/OPCPackage.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/OPCPackage.java?rev=1910949&r1=1910948&r2=1910949&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/OPCPackage.java
(original)
+++
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/OPCPackage.java
Wed Jul 12 12:25:01 2023
@@ -940,7 +940,7 @@ public abstract class OPCPackage impleme
throw new IllegalArgumentException("part");
}
- if (partList.containsKey(part._partName)) {
+ if (hasPackagePart(part)) {
if (!partList.get(part._partName).isDeleted()) {
throw new InvalidOperationException(
"A part with the name '"
@@ -958,6 +958,10 @@ public abstract class OPCPackage impleme
return part;
}
+ protected boolean hasPackagePart(PackagePart part) {
+ return partList.containsKey(part._partName);
+ }
+
/**
* Remove the specified part in this package. If this part is relationship
* part, then delete all relationships in the source part.
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/ZipPackage.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/ZipPackage.java?rev=1910949&r1=1910948&r2=1910949&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/ZipPackage.java
(original)
+++
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/ZipPackage.java
Wed Jul 12 12:25:01 2023
@@ -542,7 +542,9 @@ public final class ZipPackage extends OP
// Ensure that core properties are added if missing
getPackageProperties();
// Add core properties to part list ...
- addPackagePart(this.packageProperties);
+ if (!hasPackagePart(this.packageProperties)) {
+ addPackagePart(this.packageProperties);
+ }
// ... and to add its relationship ...
this.relationships.addRelationship(this.packageProperties
.getPartName().getURI(), TargetMode.INTERNAL,
Modified:
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFBugs.java?rev=1910949&r1=1910948&r2=1910949&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
(original)
+++
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
Wed Jul 12 12:25:01 2023
@@ -3864,6 +3864,23 @@ public final class TestXSSFBugs extends
}
}
+ @Test
+ void testBug66675() throws Exception {
+ try (XSSFWorkbook wb = openSampleWorkbook("bug66675.xlsx")) {
+ POIXMLProperties.CoreProperties coreProperties =
wb.getProperties().getCoreProperties();
+ assertNotNull(coreProperties);
+ wb.removeSheetAt(0);
+ try (UnsynchronizedByteArrayOutputStream bos =
UnsynchronizedByteArrayOutputStream.builder().get()) {
+ wb.write(bos);
+ try (XSSFWorkbook wb2 = new XSSFWorkbook(bos.toInputStream()))
{
+ XSSFSheet sheet = wb2.getSheetAt(0);
+ assertNotNull(sheet);
+ assertNotNull(wb2.getProperties().getCoreProperties());
+ }
+ }
+ }
+ }
+
private static void readByCommonsCompress(File temp_excel_poi) throws
IOException {
/* read by commons-compress*/
try (ZipFile zipFile = new ZipFile(temp_excel_poi)) {
Added: poi/trunk/test-data/spreadsheet/bug66675.xlsx
URL:
http://svn.apache.org/viewvc/poi/trunk/test-data/spreadsheet/bug66675.xlsx?rev=1910949&view=auto
==============================================================================
Binary file - no diff available.
Propchange: poi/trunk/test-data/spreadsheet/bug66675.xlsx
------------------------------------------------------------------------------
--- svn:mime-type (added)
+++ svn:mime-type Wed Jul 12 12:25:01 2023
@@ -0,0 +1 @@
+application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]