From 1d630a94fc75bff53552bd8739aad7aa4895efca Mon Sep 17 00:00:00 2001 From: Dominik Stadler Date: Thu, 30 Dec 2021 23:03:16 +0000 Subject: [PATCH] Bug 52447: Allow HyperLinkRecord to appear as part of the RowRecordsAggregate git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1896552 13f79535-47bb-0310-9956-ffa450edef68 --- .../record/aggregates/RowRecordsAggregate.java | 4 ++++ .../org/apache/poi/hssf/usermodel/TestBugs.java | 7 ++++++- test-data/spreadsheet/52447.xls | Bin 0 -> 54784 bytes 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 test-data/spreadsheet/52447.xls diff --git a/poi/src/main/java/org/apache/poi/hssf/record/aggregates/RowRecordsAggregate.java b/poi/src/main/java/org/apache/poi/hssf/record/aggregates/RowRecordsAggregate.java index 2a5789c7cb..eb2cd212a3 100644 --- a/poi/src/main/java/org/apache/poi/hssf/record/aggregates/RowRecordsAggregate.java +++ b/poi/src/main/java/org/apache/poi/hssf/record/aggregates/RowRecordsAggregate.java @@ -32,6 +32,7 @@ import org.apache.poi.hssf.record.DBCellRecord; import org.apache.poi.hssf.record.DConRefRecord; import org.apache.poi.hssf.record.DimensionsRecord; import org.apache.poi.hssf.record.FormulaRecord; +import org.apache.poi.hssf.record.HyperlinkRecord; import org.apache.poi.hssf.record.IndexRecord; import org.apache.poi.hssf.record.MergeCellsRecord; import org.apache.poi.hssf.record.MulBlankRecord; @@ -90,6 +91,9 @@ public final class RowRecordsAggregate extends RecordAggregate { // end of 'Row Block'. Should only occur after cell records // ignore DBCELL records because POI generates them upon re-serialization continue; + case HyperlinkRecord.sid: + // some files contain a HyperlinkRecord here which we ignore for now + continue; } if (rec instanceof UnknownRecord) { // might need to keep track of where exactly these belong diff --git a/poi/src/test/java/org/apache/poi/hssf/usermodel/TestBugs.java b/poi/src/test/java/org/apache/poi/hssf/usermodel/TestBugs.java index 5b4ff82ed4..4f216c6848 100644 --- a/poi/src/test/java/org/apache/poi/hssf/usermodel/TestBugs.java +++ b/poi/src/test/java/org/apache/poi/hssf/usermodel/TestBugs.java @@ -2603,5 +2603,10 @@ final class TestBugs extends BaseTestBugzillaIssues { } } - + @Test + void test52447() throws IOException { + try (Workbook wb = openSampleWorkbook("52447.xls")) { + assertNotNull(wb); + } + } } diff --git a/test-data/spreadsheet/52447.xls b/test-data/spreadsheet/52447.xls new file mode 100644 index 0000000000000000000000000000000000000000..ee2317d323c36f3c7ecbb5419e1e63fc54c773a4 GIT binary patch literal 54784 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 H4iEevJy9tA literal 0 HcmV?d00001