From e79cc21802e5204a508d177aa3ff5d1331101b46 Mon Sep 17 00:00:00 2001 From: Yegor Kozlov Date: Sat, 22 May 2010 16:24:22 +0000 Subject: [PATCH] avoid NPE when finding cell comments, Bugzilla 48846 git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@947315 13f79535-47bb-0310-9956-ffa450edef68 --- src/documentation/content/xdocs/status.xml | 1 + .../org/apache/poi/hssf/usermodel/HSSFCell.java | 16 ++++++++++------ test-data/spreadsheet/49325.xlsx | Bin 0 -> 7429 bytes 3 files changed, 11 insertions(+), 6 deletions(-) create mode 100755 test-data/spreadsheet/49325.xlsx diff --git a/src/documentation/content/xdocs/status.xml b/src/documentation/content/xdocs/status.xml index ea298f9298..bb66430073 100644 --- a/src/documentation/content/xdocs/status.xml +++ b/src/documentation/content/xdocs/status.xml @@ -34,6 +34,7 @@ + 48846 - Avoid NPE when finding cell comments 49325 - Ensure that CTPhoneticPr is included in poi-ooxml jar 49191 - Fixed tests failing in non-english locales 48432 - Support for XSSF themes diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFCell.java b/src/java/org/apache/poi/hssf/usermodel/HSSFCell.java index ac7ab6f911..a490d44dfd 100644 --- a/src/java/org/apache/poi/hssf/usermodel/HSSFCell.java +++ b/src/java/org/apache/poi/hssf/usermodel/HSSFCell.java @@ -1079,12 +1079,16 @@ public class HSSFCell implements Cell { if (note.getRow() == row && note.getColumn() == column) { if(i < noteTxo.size()) { TextObjectRecord txo = noteTxo.get(note.getShapeId()); - comment = new HSSFComment(note, txo); - comment.setRow(note.getRow()); - comment.setColumn((short) note.getColumn()); - comment.setAuthor(note.getAuthor()); - comment.setVisible(note.getFlags() == NoteRecord.NOTE_VISIBLE); - comment.setString(txo.getStr()); + if(txo != null){ + comment = new HSSFComment(note, txo); + comment.setRow(note.getRow()); + comment.setColumn(note.getColumn()); + comment.setAuthor(note.getAuthor()); + comment.setVisible(note.getFlags() == NoteRecord.NOTE_VISIBLE); + comment.setString(txo.getStr()); + } else{ + log.log(POILogger.WARN, "Failed to match NoteRecord and TextObjectRecord, row: " + row + ", column: " + column); + } } else { log.log(POILogger.WARN, "Failed to match NoteRecord and TextObjectRecord, row: " + row + ", column: " + column); } diff --git a/test-data/spreadsheet/49325.xlsx b/test-data/spreadsheet/49325.xlsx new file mode 100755 index 0000000000000000000000000000000000000000..adcba90b778a8dabc785acebc3a65ca2dfe6e37e GIT binary patch literal 7429 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 literal 0 HcmV?d00001 -- 2.39.5