From 2fbe2f48a15ea0aaca4315b12f7b1365ceb6d549 Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Mon, 20 Sep 2010 16:00:50 +0000 Subject: [PATCH] Fix bug #49931 - Avoid concurrency problems when re-ordering multiple HSSF header records for a PageSettingsBlock git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@998967 13f79535-47bb-0310-9956-ffa450edef68 --- src/documentation/content/xdocs/status.xml | 1 + .../record/aggregates/PageSettingsBlock.java | 12 ++++++++---- .../apache/poi/hssf/usermodel/TestBugs.java | 11 ++++++++++- test-data/spreadsheet/49931.xls | Bin 0 -> 113664 bytes 4 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 test-data/spreadsheet/49931.xls diff --git a/src/documentation/content/xdocs/status.xml b/src/documentation/content/xdocs/status.xml index 8cec81b2c0..cad9c5d4e1 100644 --- a/src/documentation/content/xdocs/status.xml +++ b/src/documentation/content/xdocs/status.xml @@ -34,6 +34,7 @@ + 49931 - Avoid concurrency problems when re-ordering multiple HSSF header records for a PageSettingsBlock 49765 - Fix XWPFDocument.addPicture so that it correctly sets up relationships 48018 - Improve HWPF handling of lists in documents read and then saved, by preserving order better 49820 - Fix HWPF paragraph levels, so that outline levels can be properly fetched diff --git a/src/java/org/apache/poi/hssf/record/aggregates/PageSettingsBlock.java b/src/java/org/apache/poi/hssf/record/aggregates/PageSettingsBlock.java index 6dde94c3c7..17cb84d55d 100644 --- a/src/java/org/apache/poi/hssf/record/aggregates/PageSettingsBlock.java +++ b/src/java/org/apache/poi/hssf/record/aggregates/PageSettingsBlock.java @@ -18,6 +18,7 @@ package org.apache.poi.hssf.record.aggregates; import java.util.ArrayList; +import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Arrays; @@ -639,7 +640,7 @@ public final class PageSettingsBlock extends RecordAggregate { /** * Some apps can define multiple HeaderFooterRecord records for a sheet. - * When saving such a file Excel 2007 re-positiones them according to the followig rules: + * When saving such a file Excel 2007 re-positions them according to the following rules: * - take a HeaderFooterRecord and read 16-byte GUID at offset 12. If it is zero, * it means the current sheet and the given HeaderFooterRecord belongs to this PageSettingsBlock * - If GUID is not zero then search in preceding CustomViewSettingsRecordAggregates. @@ -649,10 +650,13 @@ public final class PageSettingsBlock extends RecordAggregate { * @param sheetRecords the list of sheet records read so far */ public void positionRecords(List sheetRecords) { + // Take a copy to loop over, so we can update the real one + // without concurrency issues + List hfRecordsToIterate = new ArrayList(_sviewHeaderFooters); + // loop through HeaderFooterRecord records having not-empty GUID and match them with // CustomViewSettingsRecordAggregate blocks having UserSViewBegin with the same GUID - for (final Iterator it = _sviewHeaderFooters.iterator(); it.hasNext(); ) { - final HeaderFooterRecord hf = it.next(); + for(final HeaderFooterRecord hf : hfRecordsToIterate) { for (RecordBase rb : sheetRecords) { if (rb instanceof CustomViewSettingsRecordAggregate) { final CustomViewSettingsRecordAggregate cv = (CustomViewSettingsRecordAggregate) rb; @@ -663,7 +667,7 @@ public final class PageSettingsBlock extends RecordAggregate { byte[] guid2 = hf.getGuid(); if (Arrays.equals(guid1, guid2)) { cv.append(hf); - it.remove(); + _sviewHeaderFooters.remove(hf); } } } diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java index a7f52e9a6d..b92a3d5f6d 100644 --- a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java +++ b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java @@ -1857,6 +1857,15 @@ if(1==2) { } } assertTrue(namedStyles.containsAll(collecteddStyles)); - } + + /** + * Regression with the PageSettingsBlock + */ + public void test49931() throws Exception { + HSSFWorkbook wb = openSample("49931.xls"); + + assertEquals(1, wb.getNumberOfSheets()); + assertEquals("Foo", wb.getSheetAt(0).getRow(0).getCell(0).getRichStringCellValue().toString()); + } } diff --git a/test-data/spreadsheet/49931.xls b/test-data/spreadsheet/49931.xls new file mode 100644 index 0000000000000000000000000000000000000000..0ec10b0ba3859e72d25517a6f6fded93cdd12490 GIT binary patch literal 113664 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