aboutsummaryrefslogtreecommitdiffstats
path: root/src/testcases
diff options
context:
space:
mode:
authorNick Burch <nick@apache.org>2008-11-12 18:25:33 +0000
committerNick Burch <nick@apache.org>2008-11-12 18:25:33 +0000
commit1b24850c7cd4251a35ad39a41195da134b194416 (patch)
treeaa0e32123465a3d731d7994af58f1ab138123d98 /src/testcases
parent84d10b7ecd5956e5deaa1e9a10903c2921f97f46 (diff)
downloadpoi-1b24850c7cd4251a35ad39a41195da134b194416.tar.gz
poi-1b24850c7cd4251a35ad39a41195da134b194416.zip
Fix bug #45290 - Support odd files where the POIFS header block comes after the data blocks, and is on the data blocks list
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@713447 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/testcases')
-rw-r--r--src/testcases/org/apache/poi/hssf/data/45290.xlsbin0 -> 23552 bytes
-rw-r--r--src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java13
-rw-r--r--src/testcases/org/apache/poi/poifs/storage/TestBlockAllocationTableReader.java2
-rw-r--r--src/testcases/org/apache/poi/poifs/storage/TestBlockListImpl.java2
4 files changed, 12 insertions, 5 deletions
diff --git a/src/testcases/org/apache/poi/hssf/data/45290.xls b/src/testcases/org/apache/poi/hssf/data/45290.xls
new file mode 100644
index 0000000000..dd064497a0
--- /dev/null
+++ b/src/testcases/org/apache/poi/hssf/data/45290.xls
Binary files differ
diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
index 024f94e5b7..402ee797a9 100644
--- a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
+++ b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
@@ -27,9 +27,6 @@ import java.util.List;
import junit.framework.AssertionFailedError;
import junit.framework.TestCase;
-import org.apache.poi.ss.util.Region;
-import org.apache.poi.ss.util.CellRangeAddress;
-
import org.apache.poi.hssf.HSSFTestDataSamples;
import org.apache.poi.hssf.model.Workbook;
import org.apache.poi.hssf.record.CellValueRecordInterface;
@@ -38,6 +35,7 @@ import org.apache.poi.hssf.record.NameRecord;
import org.apache.poi.hssf.record.aggregates.FormulaRecordAggregate;
import org.apache.poi.hssf.record.formula.DeletedArea3DPtg;
import org.apache.poi.hssf.record.formula.Ptg;
+import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.util.TempFile;
/**
@@ -1533,4 +1531,13 @@ public final class TestBugs extends TestCase {
assertEquals(7, wb.getNumberOfSheets());
wb = HSSFTestDataSamples.writeOutAndReadBack(wb);
}
+
+ /**
+ * Odd POIFS blocks issue:
+ * block[ 44 ] already removed from org.apache.poi.poifs.storage.BlockListImpl.remove
+ */
+ public void test45290() {
+ HSSFWorkbook wb = openSample("45290.xls");
+ assertEquals(1, wb.getNumberOfSheets());
+ }
}
diff --git a/src/testcases/org/apache/poi/poifs/storage/TestBlockAllocationTableReader.java b/src/testcases/org/apache/poi/poifs/storage/TestBlockAllocationTableReader.java
index a209de6c8d..d688ce1459 100644
--- a/src/testcases/org/apache/poi/poifs/storage/TestBlockAllocationTableReader.java
+++ b/src/testcases/org/apache/poi/poifs/storage/TestBlockAllocationTableReader.java
@@ -1325,7 +1325,7 @@ public class TestBlockAllocationTableReader
try
{
ListManagedBlock[] dataBlocks =
- table.fetchBlocks(start_blocks[ j ], list);
+ table.fetchBlocks(start_blocks[ j ], -1, list);
if (expected_length[ j ] == -1)
{
diff --git a/src/testcases/org/apache/poi/poifs/storage/TestBlockListImpl.java b/src/testcases/org/apache/poi/poifs/storage/TestBlockListImpl.java
index 6b8d091a50..194a951a1d 100644
--- a/src/testcases/org/apache/poi/poifs/storage/TestBlockListImpl.java
+++ b/src/testcases/org/apache/poi/poifs/storage/TestBlockListImpl.java
@@ -285,7 +285,7 @@ public class TestBlockListImpl
try
{
ListManagedBlock[] dataBlocks =
- list.fetchBlocks(start_blocks[ j ]);
+ list.fetchBlocks(start_blocks[ j ], -1);
if (expected_length[ j ] == -1)
{