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 Binary files /dev/null and b/test-data/spreadsheet/64261.xls differ