diff --git a/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFShapeGroup.java b/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFShapeGroup.java index 76cd1f76d1..e1f1f9c2fc 100644 --- a/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFShapeGroup.java +++ b/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFShapeGroup.java @@ -355,7 +355,11 @@ public class HSSFShapeGroup extends HSSFShape implements HSSFShapeContainer { EscherContainerRecord containerRecord = getEscherContainer().getChildById(EscherContainerRecord.SP_CONTAINER); EscherSpRecord spRecord = containerRecord.getChildById(EscherSpRecord.RECORD_ID); spRecord.setShapeId(shapeId); - CommonObjectDataSubRecord cod = (CommonObjectDataSubRecord) getObjRecord().getSubRecords().get(0); + ObjRecord objRecord = getObjRecord(); + if (objRecord == null) { + throw new IllegalStateException("Did not have an ObjRecord for the HSSFShapeGroup"); + } + CommonObjectDataSubRecord cod = (CommonObjectDataSubRecord) objRecord.getSubRecords().get(0); cod.setObjectId((short) (shapeId % 1024)); } diff --git a/poi/src/test/java/org/apache/poi/hssf/model/TestDrawingAggregate.java b/poi/src/test/java/org/apache/poi/hssf/model/TestDrawingAggregate.java index f326f17b07..e14464ba80 100644 --- a/poi/src/test/java/org/apache/poi/hssf/model/TestDrawingAggregate.java +++ b/poi/src/test/java/org/apache/poi/hssf/model/TestDrawingAggregate.java @@ -139,7 +139,8 @@ class TestDrawingAggregate { !file.getName().equals("clusterfuzz-testcase-minimized-POIHSSFFuzzer-5285517825277952.xls") && !file.getName().equals("clusterfuzz-testcase-minimized-POIHSSFFuzzer-4977868385681408.xls") && !file.getName().equals("crash-e329fca9087fe21bca4a80c8bc472a661c98d860.xls") && - !file.getName().equals("cf9f845e73447b092477d0472402a5baea4b8c9f.xls")). + !file.getName().equals("cf9f845e73447b092477d0472402a5baea4b8c9f.xls") && + !file.getName().equals("LIBRE_OFFICE-94379-0.zip-57.xls")). map(Arguments::of); } diff --git a/test-data/spreadsheet/LIBRE_OFFICE-94379-0.zip-57.xls b/test-data/spreadsheet/LIBRE_OFFICE-94379-0.zip-57.xls new file mode 100755 index 0000000000..ee6186ad92 Binary files /dev/null and b/test-data/spreadsheet/LIBRE_OFFICE-94379-0.zip-57.xls differ diff --git a/test-data/spreadsheet/stress.xls b/test-data/spreadsheet/stress.xls index cd4be7f1dc..b0f95e64b3 100644 Binary files a/test-data/spreadsheet/stress.xls and b/test-data/spreadsheet/stress.xls differ