From da146d33998d1f4e0e8c78910e1c9bb3cfef8678 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Thu, 10 Dec 2020 12:24:19 +0000 Subject: [PATCH] try to handle case where checksum is null git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1884278 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/xwpf/usermodel/XWPFPictureData.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFPictureData.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFPictureData.java index 8158b81e80..548c614661 100644 --- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFPictureData.java +++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFPictureData.java @@ -124,7 +124,7 @@ public class XWPFPictureData extends POIXMLDocumentPart { /** * Return an integer constant that specifies type of this picture * - * @return an integer constant that specifies type of this picture + * @return an integer constant that specifies type of this picture, returns 0 if an unknown type * @see org.apache.poi.xwpf.usermodel.Document#PICTURE_TYPE_EMF * @see org.apache.poi.xwpf.usermodel.Document#PICTURE_TYPE_WMF * @see org.apache.poi.xwpf.usermodel.Document#PICTURE_TYPE_PICT @@ -217,15 +217,22 @@ public class XWPFPictureData extends POIXMLDocumentPart { Long foreignChecksum = picData.getChecksum(); Long localChecksum = getChecksum(); - if (!(localChecksum.equals(foreignChecksum))) { - return false; + if (localChecksum == null) { + if (foreignChecksum != null) { + return false; + } + } else { + if (!(localChecksum.equals(foreignChecksum))) { + return false; + } } return Arrays.equals(this.getData(), picData.getData()); } @Override public int hashCode() { - return getChecksum().hashCode(); + Long checksum = getChecksum(); + return checksum == null ? super.hashCode() : checksum.hashCode(); } /** -- 2.39.5