]> source.dussan.org Git - poi.git/commitdiff
Regression analysis: the additional testing of cloning sheets showed a
authorDominik Stadler <centic@apache.org>
Sat, 13 Feb 2016 21:29:46 +0000 (21:29 +0000)
committerDominik Stadler <centic@apache.org>
Sat, 13 Feb 2016 21:29:46 +0000 (21:29 +0000)
possible ArrayIndexOutOfBounds error which we can avoid to make cloning
fail a bit less.

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1730274 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hssf/usermodel/HSSFPicture.java
test-data/spreadsheet/florida_data.ashx.xls [new file with mode: 0644]

index c40f45e964987e80f6632a78985940a587b89815..8b3b980fc8127e59633c72dc06329e2e8869b2ac 100644 (file)
@@ -214,9 +214,11 @@ public class HSSFPicture extends HSSFSimpleShape implements Picture {
     void afterInsert(HSSFPatriarch patriarch) {
         EscherAggregate agg = patriarch.getBoundAggregate();
         agg.associateShapeToObjRecord(getEscherContainer().getChildById(EscherClientDataRecord.RECORD_ID), getObjRecord());
-        EscherBSERecord bse =
-                patriarch.getSheet().getWorkbook().getWorkbook().getBSERecord(getPictureIndex());
-        bse.setRef(bse.getRef() + 1);
+        if(getPictureIndex() != -1) {
+            EscherBSERecord bse =
+                    patriarch.getSheet().getWorkbook().getWorkbook().getBSERecord(getPictureIndex());
+            bse.setRef(bse.getRef() + 1);
+        }
     }
 
     /**
diff --git a/test-data/spreadsheet/florida_data.ashx.xls b/test-data/spreadsheet/florida_data.ashx.xls
new file mode 100644 (file)
index 0000000..5e45fea
Binary files /dev/null and b/test-data/spreadsheet/florida_data.ashx.xls differ