Use log instead of assert when parsing emf-files

Assert effectively hides problem in provided input files.
This commit is contained in:
Dominik Stadler 2026-01-24 10:52:41 +01:00
parent da3d64d9e3
commit ab196a7441
3 changed files with 10 additions and 1 deletions

View File

@ -24,6 +24,8 @@ import java.io.IOException;
import java.util.Map;
import java.util.function.Supplier;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.poi.common.usermodel.GenericRecord;
import org.apache.poi.hemf.draw.HemfGraphics;
import org.apache.poi.hemf.draw.HemfGraphics.EmfRenderState;
@ -38,6 +40,8 @@ import org.apache.poi.util.LittleEndianInputStream;
@Internal
public class HemfPlusHeader implements HemfPlusRecord {
private static final Logger log = LogManager.getLogger(HemfPlusHeader.class);
/**
* The GraphicsVersion enumeration defines versions of operating system graphics that are used to
* create EMF+ metafiles.
@ -89,7 +93,12 @@ public class HemfPlusHeader implements HemfPlusRecord {
this.flags = flags;
version.init(leis);
assert(version.getMetafileSignature() == 0xDBC01 && version.getGraphicsVersion() != null);
if (version.getMetafileSignature() != 0xDBC01) {
log.atWarn().log("Had invalid meta-file signature, expected " + 0xDBC01 + ", had: " + version.getMetafileSignature());
}
if (version.getGraphicsVersion() == null) {
log.atWarn().log("Encountered empty graphics version in emf file");
}
emfPlusFlags = leis.readUInt();

Binary file not shown.