git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1910949 13f79535-47bb-0310-9956-ffa450edef68tags/REL_5_2_4
@@ -940,7 +940,7 @@ public abstract class OPCPackage implements RelationshipSource, Closeable { | |||
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 implements RelationshipSource, Closeable { | |||
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. |
@@ -542,7 +542,9 @@ public final class ZipPackage extends OPCPackage { | |||
// 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, |
@@ -3864,6 +3864,23 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues { | |||
} | |||
} | |||
@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)) { |