summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeniy Berlog <berlog@apache.org>2012-07-28 16:01:24 +0000
committerEvgeniy Berlog <berlog@apache.org>2012-07-28 16:01:24 +0000
commitc445756d0880312c943e0e4da26bf551993fa973 (patch)
treefd5b45adaedc15f896338c024436587e9d5b4bb3
parent61cb6a93c53224c57cbeb5a0dbd46e5fca62b5c1 (diff)
downloadpoi-c445756d0880312c943e0e4da26bf551993fa973.tar.gz
poi-c445756d0880312c943e0e4da26bf551993fa973.zip
fixed bug 51675, added test case for bug 52272
git-svn-id: https://svn.apache.org/repos/asf/poi/branches/gsoc2012@1366700 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/java/org/apache/poi/hssf/record/aggregates/PageSettingsBlock.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java30
-rw-r--r--test-data/spreadsheet/51675.xlsbin0 -> 69120 bytes
3 files changed, 31 insertions, 1 deletions
diff --git a/src/java/org/apache/poi/hssf/record/aggregates/PageSettingsBlock.java b/src/java/org/apache/poi/hssf/record/aggregates/PageSettingsBlock.java
index 676a8f9831..5236e184b8 100644
--- a/src/java/org/apache/poi/hssf/record/aggregates/PageSettingsBlock.java
+++ b/src/java/org/apache/poi/hssf/record/aggregates/PageSettingsBlock.java
@@ -284,9 +284,9 @@ public final class PageSettingsBlock extends RecordAggregate {
pls.visitContainedRecords(rv);
}
visitIfPresent(_printSetup, rv);
- visitIfPresent(_bitmap, rv);
visitIfPresent(_printSize, rv);
visitIfPresent(_headerFooter, rv);
+ visitIfPresent(_bitmap, rv);
}
private static void visitIfPresent(Record r, RecordVisitor rv) {
if (r != null) {
diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
index 0864549f6c..69f0e3425b 100644
--- a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
+++ b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
@@ -24,9 +24,12 @@ import org.apache.poi.hssf.HSSFITestDataProvider;
import org.apache.poi.hssf.HSSFTestDataSamples;
import org.apache.poi.hssf.OldExcelFormatException;
import org.apache.poi.hssf.extractor.ExcelExtractor;
+import org.apache.poi.hssf.model.InternalSheet;
import org.apache.poi.hssf.model.InternalWorkbook;
import org.apache.poi.hssf.record.*;
import org.apache.poi.hssf.record.aggregates.FormulaRecordAggregate;
+import org.apache.poi.hssf.record.aggregates.PageSettingsBlock;
+import org.apache.poi.hssf.record.aggregates.RecordAggregate;
import org.apache.poi.hssf.record.common.UnicodeString;
import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
@@ -2238,4 +2241,31 @@ if(1==2) {
// make sure we are still readable
writeOutAndReadBack(workbook);
}
+
+ public void test51675(){
+ final List<Short> list = new ArrayList<Short>();
+ HSSFWorkbook workbook = openSample("51675.xls");
+ HSSFSheet sh = workbook.getSheetAt(0);
+ InternalSheet ish = HSSFTestHelper.getSheetForTest(sh);
+ PageSettingsBlock psb = (PageSettingsBlock) ish.getRecords().get(13);
+ psb.visitContainedRecords(new RecordAggregate.RecordVisitor() {
+ public void visitRecord(Record r) {
+ list.add(r.getSid());
+ }
+ });
+ assertTrue(list.get(list.size()-1).intValue() == UnknownRecord.BITMAP_00E9);
+ assertTrue(list.get(list.size()-2).intValue() == UnknownRecord.HEADER_FOOTER_089C);
+ }
+
+ public void test52272(){
+ HSSFWorkbook wb = new HSSFWorkbook();
+ HSSFSheet sh = wb.createSheet();
+ HSSFPatriarch p = sh.createDrawingPatriarch();
+
+ HSSFSimpleShape s = p.createSimpleShape(new HSSFClientAnchor());
+ s.setShapeType(HSSFSimpleShape.OBJECT_TYPE_LINE);
+
+ HSSFSheet sh2 = wb.cloneSheet(0);
+ assertNotNull(sh2.getDrawingPatriarch());
+ }
}
diff --git a/test-data/spreadsheet/51675.xls b/test-data/spreadsheet/51675.xls
new file mode 100644
index 0000000000..78df32cb94
--- /dev/null
+++ b/test-data/spreadsheet/51675.xls
Binary files differ