diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/OfficeArtContent.java b/src/scratchpad/src/org/apache/poi/hwpf/model/OfficeArtContent.java index 4967c54518..59a61596a7 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/model/OfficeArtContent.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/model/OfficeArtContent.java @@ -121,7 +121,7 @@ public final class OfficeArtContent { return drawingGroupData.getChildRecords(); } - public List getDgContainers() { + private List getDgContainers() { List dgContainers = new ArrayList<>(2); if (mainDocumentDgContainer != null) { dgContainers.add(mainDocumentDgContainer); @@ -132,18 +132,11 @@ public final class OfficeArtContent { return dgContainers; } - public List getBStoreContainers() - { - List bStoreContainers = new ArrayList<>( - 1); - for ( EscherRecord escherRecord : drawingGroupData.getChildRecords() ) - { - if ( escherRecord.getRecordId() == (short) 0xF001 ) - { - bStoreContainers.add( (EscherContainerRecord) escherRecord ); - } - } - return bStoreContainers; + /** + * @return The {@link EscherRecordTypes#BSTORE_CONTAINER} or {@code null} if the document doesn't have one. + */ + public EscherContainerRecord getBStoreContainer() { + return drawingGroupData.getChildById(EscherRecordTypes.BSTORE_CONTAINER.typeID); } public List getSpgrContainers() diff --git a/src/scratchpad/src/org/apache/poi/hwpf/usermodel/OfficeDrawingsImpl.java b/src/scratchpad/src/org/apache/poi/hwpf/usermodel/OfficeDrawingsImpl.java index 0dcb38861b..253cc07536 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/usermodel/OfficeDrawingsImpl.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/usermodel/OfficeDrawingsImpl.java @@ -52,12 +52,10 @@ public class OfficeDrawingsImpl implements OfficeDrawings private EscherBlipRecord getBitmapRecord( int bitmapIndex ) { - List bContainers = officeArtContent - .getBStoreContainers(); - if ( bContainers == null || bContainers.size() != 1 ) + EscherContainerRecord bContainer = officeArtContent.getBStoreContainer(); + if (bContainer == null) return null; - EscherContainerRecord bContainer = bContainers.get( 0 ); final List bitmapRecords = bContainer.getChildRecords(); if ( bitmapRecords.size() < bitmapIndex )