From f9ebc1ae74d290098127f945b960556d2a64c0f9 Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Mon, 12 Nov 2007 13:13:25 +0000 Subject: [PATCH] Fix for BOFRecord from files generated by access etc (bug #42794) git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@594102 13f79535-47bb-0310-9956-ffa450edef68 --- src/documentation/content/xdocs/changes.xml | 1 + src/documentation/content/xdocs/status.xml | 1 + .../org/apache/poi/hssf/record/BOFRecord.java | 19 +++++-- .../org/apache/poi/hssf/data/bug_42794.mdb | Bin 0 -> 143360 bytes .../org/apache/poi/hssf/data/bug_42794.xls | Bin 0 -> 10240 bytes .../apache/poi/hssf/record/TestBOFRecord.java | 50 ++++++++++++++++++ 6 files changed, 67 insertions(+), 4 deletions(-) create mode 100644 src/testcases/org/apache/poi/hssf/data/bug_42794.mdb create mode 100644 src/testcases/org/apache/poi/hssf/data/bug_42794.xls create mode 100644 src/testcases/org/apache/poi/hssf/record/TestBOFRecord.java diff --git a/src/documentation/content/xdocs/changes.xml b/src/documentation/content/xdocs/changes.xml index d2298ea8be..f88c1582f6 100644 --- a/src/documentation/content/xdocs/changes.xml +++ b/src/documentation/content/xdocs/changes.xml @@ -36,6 +36,7 @@ + 42794 - [PATCH] Fix for BOF records from things like Access 43648 - Fix for IntPtg and short vs int 43751 - [PATCH] - Fix for handling rotated text in HSSFSheet.autoSizeColumn Include an Excel text extractor, and put all existing text extractors under a common superclass diff --git a/src/documentation/content/xdocs/status.xml b/src/documentation/content/xdocs/status.xml index f8c0eb6de8..1dc3b60bcd 100644 --- a/src/documentation/content/xdocs/status.xml +++ b/src/documentation/content/xdocs/status.xml @@ -33,6 +33,7 @@ + 42794 - [PATCH] Fix for BOF records from things like Access 43648 - Fix for IntPtg and short vs int 43751 - [PATCH] - Fix for handling rotated text in HSSFSheet.autoSizeColumn Include an Excel text extractor, and put all existing text extractors under a common superclass diff --git a/src/java/org/apache/poi/hssf/record/BOFRecord.java b/src/java/org/apache/poi/hssf/record/BOFRecord.java index df532d036e..dd5335a420 100644 --- a/src/java/org/apache/poi/hssf/record/BOFRecord.java +++ b/src/java/org/apache/poi/hssf/record/BOFRecord.java @@ -110,10 +110,21 @@ public class BOFRecord { field_1_version = in.readShort(); field_2_type = in.readShort(); - field_3_build = in.readShort(); - field_4_year = in.readShort(); - field_5_history = in.readInt(); - field_6_rversion = in.readInt(); + + // Some external tools don't generate all of + // the remaining fields + if (in.remaining() >= 2) { + field_3_build = in.readShort(); + } + if (in.remaining() >= 2) { + field_4_year = in.readShort(); + } + if (in.remaining() >= 4) { + field_5_history = in.readInt(); + } + if (in.remaining() >= 4) { + field_6_rversion = in.readInt(); + } } /** diff --git a/src/testcases/org/apache/poi/hssf/data/bug_42794.mdb b/src/testcases/org/apache/poi/hssf/data/bug_42794.mdb new file mode 100644 index 0000000000000000000000000000000000000000..431eff734eb97e40ddd1fe3694c012d50244d62e GIT binary patch literal 143360 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 WX*e)!;C1jZ@E`>i2rRI97Wf;@QXk3y literal 0 HcmV?d00001 diff --git a/src/testcases/org/apache/poi/hssf/record/TestBOFRecord.java b/src/testcases/org/apache/poi/hssf/record/TestBOFRecord.java new file mode 100644 index 0000000000..63f5cc317e --- /dev/null +++ b/src/testcases/org/apache/poi/hssf/record/TestBOFRecord.java @@ -0,0 +1,50 @@ + +/* ==================================================================== + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +==================================================================== */ + + +package org.apache.poi.hssf.record; + +import java.io.File; +import java.io.FileInputStream; + +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.poifs.filesystem.POIFSFileSystem; + +import junit.framework.TestCase; + +public class TestBOFRecord extends TestCase +{ + private String _test_file_path; + private static final String _test_file_path_property = "HSSF.testdata.path"; + + public TestBOFRecord() + { + super(); + _test_file_path = System.getProperty( _test_file_path_property ) + + File.separator + "bug_42794.xls"; + } + + public void testBOFRecord() throws Exception { + POIFSFileSystem fs = new POIFSFileSystem( + new FileInputStream(_test_file_path) + ); + + // This used to throw an error before + HSSFWorkbook hssf = new HSSFWorkbook(fs); + } +} -- 2.39.5