]> source.dussan.org Git - poi.git/commitdiff
fixed bug 53432
authorEvgeniy Berlog <berlog@apache.org>
Tue, 14 Aug 2012 21:11:53 +0000 (21:11 +0000)
committerEvgeniy Berlog <berlog@apache.org>
Tue, 14 Aug 2012 21:11:53 +0000 (21:11 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1373110 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hssf/record/AbstractEscherHolderRecord.java
src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java

index 78893e1aa7de0eb9a13d1cc7a3ba8579f635b8e9..078f0205d79daf70ec0e14039fe3ff5c9aa349f6 100644 (file)
@@ -257,7 +257,9 @@ public abstract class AbstractEscherHolderRecord extends Record {
      */
     public void decode()
     {
-        byte[] rawData = getRawData();
-        convertToEscherRecords(0, rawData.length, rawData );
+        if (null == escherRecords || 0 == escherRecords.size()){
+            byte[] rawData = getRawData();
+            convertToEscherRecords(0, rawData.length, rawData );
+        }
     }
 }
index 69f0e3425b9e498a46a52ce40c4666d2d1368c31..9c566b05b1a0c0c020f875493fc40ffcbfba1e07 100644 (file)
@@ -2268,4 +2268,19 @@ if(1==2) {
         HSSFSheet sh2 = wb.cloneSheet(0);
         assertNotNull(sh2.getDrawingPatriarch());
     }
+
+    public void test53432(){
+        Workbook wb = new HSSFWorkbook(); //or new HSSFWorkbook();
+        wb.addPicture(new byte[]{123,22}, Workbook.PICTURE_TYPE_JPEG);
+        assertEquals(wb.getAllPictures().size(), 1);
+
+        wb = new HSSFWorkbook();
+        wb = writeOutAndReadBack((HSSFWorkbook) wb);
+        assertEquals(wb.getAllPictures().size(), 0);
+        wb.addPicture(new byte[]{123,22}, Workbook.PICTURE_TYPE_JPEG);
+        assertEquals(wb.getAllPictures().size(), 1);
+
+        wb = writeOutAndReadBack((HSSFWorkbook) wb);
+        assertEquals(wb.getAllPictures().size(), 1);
+    }
 }