aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Allison <tallison@apache.org>2020-03-31 18:16:09 +0000
committerTim Allison <tallison@apache.org>2020-03-31 18:16:09 +0000
commit597672166046577a2afd59987004d96ff9d75f18 (patch)
tree5d902e495cee19dbe4ae2ca5a5a5fcb46677cc31
parent65990027e149b09c9c131387763d5b06dbe3d26e (diff)
downloadpoi-597672166046577a2afd59987004d96ff9d75f18.tar.gz
poi-597672166046577a2afd59987004d96ff9d75f18.zip
64261 -- fix handling of drop down list when items are selected
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1875956 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/java/org/apache/poi/hssf/record/LbsDataSubRecord.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java7
-rw-r--r--test-data/spreadsheet/64261.xlsbin0 -> 26624 bytes
3 files changed, 7 insertions, 2 deletions
diff --git a/src/java/org/apache/poi/hssf/record/LbsDataSubRecord.java b/src/java/org/apache/poi/hssf/record/LbsDataSubRecord.java
index e2f7e045a8..1c17f48f4f 100644
--- a/src/java/org/apache/poi/hssf/record/LbsDataSubRecord.java
+++ b/src/java/org/apache/poi/hssf/record/LbsDataSubRecord.java
@@ -165,7 +165,7 @@ public class LbsDataSubRecord extends SubRecord {
// From [MS-XLS].pdf 2.5.147 FtLbsData:
// This array MUST exist if and only if the wListType field is not equal to 0.
- if(((_flags >> 4) & 0x2) != 0) {
+ if(((_flags >> 4) & 0x1) + (_flags >> 5 & 0x1) != 0) {
_bsels = new boolean[_cLines];
for(int i=0; i < _cLines; i++) {
_bsels[i] = in.readByte() == 1;
diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
index 9bcde6ed37..cd2bfe32bc 100644
--- a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
+++ b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
@@ -2891,7 +2891,10 @@ public final class TestBugs extends BaseTestBugzillaIssues {
public void test63940() throws IOException {
simpleTest("SUBSTITUTE.xls");
}
-
+ @Test
+ public void test64261() throws IOException {
+ simpleTest("64261.xls");
+ }
// a simple test which rewrites the file once and evaluates its formulas
private void simpleTest(String fileName) throws IOException {
simpleTest(fileName, null);
@@ -2932,4 +2935,6 @@ public final class TestBugs extends BaseTestBugzillaIssues {
HSSFFormulaEvaluator.setupEnvironment( files.toArray(new String[0]), evals.toArray(new HSSFFormulaEvaluator[0]) );
evals.get(0).evaluateAll();
}
+
+
}
diff --git a/test-data/spreadsheet/64261.xls b/test-data/spreadsheet/64261.xls
new file mode 100644
index 0000000000..83d9465476
--- /dev/null
+++ b/test-data/spreadsheet/64261.xls
Binary files differ