From e616b8cf12eed3ae3da7ac0a18c6674e13f8e4a5 Mon Sep 17 00:00:00 2001 From: Dominik Stadler Date: Thu, 30 Jun 2016 21:06:04 +0000 Subject: [PATCH] Bug 59739: For now fix the regression in FileInformationBlock which was introduced after 3.15-beta1 so that the documents can be loaded again pending a full fix as discussed in the bug. git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1750864 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/hwpf/model/FileInformationBlock.java | 17 ++++++++++++++--- .../apache/poi/hwpf/usermodel/TestBugs.java | 5 +++++ ...biosketch_facultyid=4009&name=m_maciver.doc | Bin 0 -> 47104 bytes 3 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 test-data/document/cap.stanford.edu_profiles_viewbiosketch_facultyid=4009&name=m_maciver.doc diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/FileInformationBlock.java b/src/scratchpad/src/org/apache/poi/hwpf/model/FileInformationBlock.java index 03199b330e..01b090830c 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/model/FileInformationBlock.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/model/FileInformationBlock.java @@ -161,7 +161,18 @@ public final class FileInformationBlock implements Cloneable assertCbRgFcLcb( "0x0112", 0x00B7, "0x00B7", _cbRgFcLcb ); break; default: - throw new IllegalStateException("Invalid file format version number: " + getNFib()); + /* +When running with the large CommonCrawl corpus we found the following ids in documents that are processed fine: +java.lang.IllegalStateException: Invalid file format version number: 113 +java.lang.IllegalStateException: Invalid file format version number: 191 +java.lang.IllegalStateException: Invalid file format version number: 192 +java.lang.IllegalStateException: Invalid file format version number: 194 +java.lang.IllegalStateException: Invalid file format version number: 195 +java.lang.IllegalStateException: Invalid file format version number: 216 +java.lang.IllegalStateException: Invalid file format version number: 265 +java.lang.IllegalStateException: Invalid file format version number: 267 + */ + logger.log(POILogger.WARN, "Invalid file format version number: " + getNFib()); } } @@ -197,7 +208,7 @@ public final class FileInformationBlock implements Cloneable assertCswNew( "0x0112", 0x0005, "0x0005", _cswNew ); break; default: - throw new IllegalStateException("Invalid file format version number: " + getNFib()); + logger.log(POILogger.WARN, "Invalid file format version number: " + getNFib()); } } @@ -321,7 +332,7 @@ public final class FileInformationBlock implements Cloneable } catch ( Exception exc ) { - stringBuilder.append( "(exc: " + exc.getMessage() + ")" ); + stringBuilder.append("(exc: ").append(exc.getMessage()).append(")"); } stringBuilder.append( "[/FIB2]\n" ); return stringBuilder.toString(); diff --git a/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java b/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java index 25c21cd6e2..c63361d064 100644 --- a/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java +++ b/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java @@ -894,4 +894,9 @@ public class TestBugs extends TestCase } } } + + public void testRegressionIn315beta2() { + HWPFDocument hwpfDocument = HWPFTestDataSamples.openSampleFile("cap.stanford.edu_profiles_viewbiosketch_facultyid=4009&name=m_maciver.doc"); + assertNotNull(hwpfDocument); + } } diff --git a/test-data/document/cap.stanford.edu_profiles_viewbiosketch_facultyid=4009&name=m_maciver.doc b/test-data/document/cap.stanford.edu_profiles_viewbiosketch_facultyid=4009&name=m_maciver.doc new file mode 100644 index 0000000000000000000000000000000000000000..643d8224aebb8df01371db5456f1aa1740c66b9e GIT binary patch literal 47104 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 tmE@kQyTyLz>