From 7e02d41c347e7fd1fa3fecbb6db12cfa41636f90 Mon Sep 17 00:00:00 2001 From: Yegor Kozlov Date: Mon, 4 Oct 2010 08:45:51 +0000 Subject: [PATCH] Avoid IllegalStateException when creating Data validation in sheet with macro, see Bugzilla 50020 git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1004143 13f79535-47bb-0310-9956-ffa450edef68 --- src/documentation/content/xdocs/status.xml | 1 + .../apache/poi/hssf/model/RecordOrderer.java | 2 ++ .../apache/poi/hssf/record/UnknownRecord.java | 1 + .../org/apache/poi/hssf/usermodel/TestBugs.java | 8 ++++++++ test-data/spreadsheet/50020.xls | Bin 0 -> 16384 bytes 5 files changed, 12 insertions(+) create mode 100644 test-data/spreadsheet/50020.xls diff --git a/src/documentation/content/xdocs/status.xml b/src/documentation/content/xdocs/status.xml index 27aa73f5fd..94337a2b84 100644 --- a/src/documentation/content/xdocs/status.xml +++ b/src/documentation/content/xdocs/status.xml @@ -34,6 +34,7 @@ + 50020 - Avoid IllegalStateException when creating Data validation in sheet with macro 50033 - Improved rounding in MOD Generate SHA1 hashes of distribution files, alongside existing MD5 ones diff --git a/src/java/org/apache/poi/hssf/model/RecordOrderer.java b/src/java/org/apache/poi/hssf/model/RecordOrderer.java index 31c25db850..b7d942e5dc 100644 --- a/src/java/org/apache/poi/hssf/model/RecordOrderer.java +++ b/src/java/org/apache/poi/hssf/model/RecordOrderer.java @@ -333,6 +333,8 @@ final class RecordOrderer { // ConditionalFormattingTable case HyperlinkRecord.sid: case UnknownRecord.QUICKTIP_0800: + // name of a VBA module + case UnknownRecord.CODENAME_1BA: return true; } return false; diff --git a/src/java/org/apache/poi/hssf/record/UnknownRecord.java b/src/java/org/apache/poi/hssf/record/UnknownRecord.java index 3e04d0f8bf..963810f745 100644 --- a/src/java/org/apache/poi/hssf/record/UnknownRecord.java +++ b/src/java/org/apache/poi/hssf/record/UnknownRecord.java @@ -57,6 +57,7 @@ public final class UnknownRecord extends StandardRecord { public static final int SHEETEXT_0862 = 0x0862; // OOO calls this SHEETLAYOUT public static final int SHEETPROTECTION_0867 = 0x0867; public static final int HEADER_FOOTER_089C = 0x089C; + public static final int CODENAME_1BA = 0x01BA; private int _sid; private byte[] _rawData; diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java index 7c83d0b4a1..a851ba15ae 100644 --- a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java +++ b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java @@ -1886,4 +1886,12 @@ if(1==2) { "BlahBlah blah blah ", f.getCenter() ); } + + /** + * IllegalStateException received when creating Data validation in sheet with macro + */ + public void test50020() throws Exception { + HSSFWorkbook wb = openSample("50020.xls"); + writeOutAndReadBack(wb); + } } diff --git a/test-data/spreadsheet/50020.xls b/test-data/spreadsheet/50020.xls new file mode 100644 index 0000000000000000000000000000000000000000..9f4001ef28da94ae73214fc1548069f9a15842ad GIT binary patch literal 16384 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 literal 0 HcmV?d00001