Avoid NPE and improve error message when saving a package-part fails

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1918117 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Dominik Stadler 2024-06-02 09:39:57 +00:00
parent f490e43442
commit 329a659739
3 changed files with 11 additions and 8 deletions

View File

@ -89,7 +89,8 @@ public class PackagePropertiesMarshaller implements PartMarshaller {
throws OpenXML4JException {
if (!(part instanceof PackagePropertiesPart))
throw new IllegalArgumentException(
"'part' must be a PackagePropertiesPart instance.");
"'part' must be a PackagePropertiesPart instance, but had: " + part.getClass() +
", check logs while reading.");
propsPart = (PackagePropertiesPart) part;
// Configure the document

View File

@ -63,13 +63,15 @@ public final class XSSFGraphicFrame extends XSSFShape {
for (int i = 0; i < nodes.getLength(); i++) {
final Node node = nodes.item(i);
// if the frame references a chart, associate the chart with this instance
Node namedItem = node.getAttributes().getNamedItem("r:id");
if (node.getNodeName().equals("c:chart") && namedItem != null) {
// this better succeed or the document is invalid
POIXMLDocumentPart relation = drawing.getRelationById(namedItem.getNodeValue());
// Do XWPF charts need similar treatment?
if (relation instanceof XSSFChart) {
((XSSFChart) relation).setGraphicFrame(this);
if (node.getAttributes() != null) {
Node namedItem = node.getAttributes().getNamedItem("r:id");
if (node.getNodeName().equals("c:chart") && namedItem != null) {
// this better succeed or the document is invalid
POIXMLDocumentPart relation = drawing.getRelationById(namedItem.getNodeValue());
// Do XWPF charts need similar treatment?
if (relation instanceof XSSFChart) {
((XSSFChart) relation).setGraphicFrame(this);
}
}
}
}

Binary file not shown.