From 062455c25d0fc073932b7c3695795fc89baca583 Mon Sep 17 00:00:00 2001 From: Dominik Stadler Date: Sun, 25 Oct 2020 07:21:56 +0000 Subject: [PATCH] Apply patch for bug 64791 to use proper position for the WriteAccessRecord git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1882829 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/hssf/model/InternalWorkbook.java | 3 ++- .../apache/poi/hssf/model/TestWorkbook.java | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/java/org/apache/poi/hssf/model/InternalWorkbook.java b/src/java/org/apache/poi/hssf/model/InternalWorkbook.java index eb232c6ecf..8ddb368e0a 100644 --- a/src/java/org/apache/poi/hssf/model/InternalWorkbook.java +++ b/src/java/org/apache/poi/hssf/model/InternalWorkbook.java @@ -336,7 +336,8 @@ public final class InternalWorkbook { records.add(new InterfaceHdrRecord(CODEPAGE)); records.add(createMMS()); records.add(InterfaceEndRecord.instance); - records.add(createWriteAccess()); + // store the write-access record at the proper position + retval.getWriteAccess(); records.add(createCodepage()); records.add(createDSF()); records.add(createTabId()); diff --git a/src/testcases/org/apache/poi/hssf/model/TestWorkbook.java b/src/testcases/org/apache/poi/hssf/model/TestWorkbook.java index 996f450922..bc8db67c85 100644 --- a/src/testcases/org/apache/poi/hssf/model/TestWorkbook.java +++ b/src/testcases/org/apache/poi/hssf/model/TestWorkbook.java @@ -154,4 +154,22 @@ public final class TestWorkbook { wb.close(); } + + @Test + public void testWriteAccess() { + HSSFWorkbook wb = new HSSFWorkbook(); + InternalWorkbook iwb = TestHSSFWorkbook.getInternalWorkbook(wb); + + int oldRecordsCount = iwb.getNumRecords(); + //System.out.println("records count = " + oldRecordsCount); + assertEquals("records count", 68, oldRecordsCount); + + WriteAccessRecord writeAccess = iwb.getWriteAccess(); + assertNotNull(writeAccess); + assertEquals(WriteAccessRecord.sid, writeAccess.getSid()); + + int newRecordsCount = iwb.getNumRecords(); + //System.out.println("records count after 'getWriteAccess' = " + newRecordsCount); + assertEquals("records count after getWriteAccess", oldRecordsCount, newRecordsCount); + } }