https://bz.apache.org/bugzilla/show_bug.cgi?id=65530
Bug ID: 65530
Summary: Adding an opaque URI hyperlink (e.g., 'mailto', 'tel')
to an image triggers a NullPointerException.
Product: POI
Version: unspecified
Hardware: Macintosh
Status: NEW
Severity: normal
Priority: P2
Component: XSLF
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
Adding an opaque URI hyperlink (e.g., 'mailto', 'tel') to an image triggers a
NullPointerException.
var uri = toUri("mailto:foo@bar");
System.out.println("Is URI opaque? " + uri.isOpaque());
var nvPicPr = ((CTPicture) picture.getXmlObject()).getNvPicPr();
var cNvPr = nvPicPr.getCNvPr() != null ? nvPicPr.getCNvPr() :
nvPicPr.addNewCNvPr();
var hyperlink = cNvPr.addNewHlinkClick();
//
// Here is where the NullPointerException is thrown
//
var rel = slide.getPackagePart()
.addRelationship(uri, TargetMode.EXTERNAL,
XSLFRelation.HYPERLINK.getRelation());
hyperlink.setId(rel.getId())
We tracked it down to file PackagingURIHelper.java, method
`isRelationshipPartURI`:
public static boolean isRelationshipPartURI(URI partUri) {
if (partUri == null)
throw new IllegalArgumentException("partUri");
//
// !! Here, calling partUri.getPath() when the URI is opaque returns null !!
//
return partUri.getPath().matches(
".*" + RELATIONSHIP_PART_SEGMENT_NAME + ".*"
+ RELATIONSHIP_PART_EXTENSION_NAME + "$");
}
Part of the stack trace:
java.lang.NullPointerException
at
org.apache.poi.openxml4j.opc.PackagingURIHelper.isRelationshipPartURI(PackagingURIHelper.java:169)
at
org.apache.poi.openxml4j.opc.PackagePart.addRelationship(PackagePart.java:337)
at
org.apache.poi.openxml4j.opc.PackagePart.addRelationship(PackagePart.java:293)
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]