diff --git a/fj-doc-val-core/src/main/java/org/fugerit/java/doc/val/core/basic/ImageValidator.java b/fj-doc-val-core/src/main/java/org/fugerit/java/doc/val/core/basic/ImageValidator.java index baf08b145..5b5ff8aaf 100644 --- a/fj-doc-val-core/src/main/java/org/fugerit/java/doc/val/core/basic/ImageValidator.java +++ b/fj-doc-val-core/src/main/java/org/fugerit/java/doc/val/core/basic/ImageValidator.java @@ -1,6 +1,5 @@ package org.fugerit.java.doc.val.core.basic; -import java.io.IOException; import java.io.InputStream; import java.util.Collections; import java.util.Iterator; @@ -11,7 +10,6 @@ import javax.imageio.stream.ImageInputStream; import org.fugerit.java.core.lang.helpers.JavaVersionHelper; -import org.fugerit.java.core.util.result.Result; import org.fugerit.java.doc.val.core.DocTypeValidationResult; import org.fugerit.java.doc.val.core.DocTypeValidator; @@ -54,23 +52,19 @@ public static boolean javaVersionSupportHelper( int javaMajorVersionFound, int j private int javaMajorVersionRequired; @Override - public DocTypeValidationResult validate(InputStream is) throws IOException { - DocTypeValidationResult result = DocTypeValidationResult.newFail(); + public DocTypeValidationResult validate(InputStream is) { try ( ImageInputStream iis = ImageIO.createImageInputStream( is ) ) { Iterator readers = ImageIO.getImageReadersByFormatName( this.format ); - while (readers.hasNext()) { - try { - ImageReader reader = readers.next(); - reader.setInput(iis); - reader.read(0); - result.setResultCode( Result.RESULT_CODE_OK ); - break; - } catch (IOException exp) { - log.debug( "checkImage {}", exp.getMessage() ); - } - } + if (readers.hasNext()) { + ImageReader reader = readers.next(); + reader.setInput(iis); + reader.read(0); + return DocTypeValidationResult.newOk(); + } + } catch (Exception exp) { + log.debug( "checkImage (v2) {}", exp.getMessage() ); } - return result; + return DocTypeValidationResult.newFail(); } protected ImageValidator(String mimeType, Set supportedExtensions, String format, int javaMajorVersionRequired) { diff --git a/fj-doc-val-p7m/src/main/java/org/fugerit/java/doc/val/p7m/P7MContentValidator.java b/fj-doc-val-p7m/src/main/java/org/fugerit/java/doc/val/p7m/P7MContentValidator.java index 60922b0d7..dd9f0c80b 100644 --- a/fj-doc-val-p7m/src/main/java/org/fugerit/java/doc/val/p7m/P7MContentValidator.java +++ b/fj-doc-val-p7m/src/main/java/org/fugerit/java/doc/val/p7m/P7MContentValidator.java @@ -3,6 +3,8 @@ import java.io.ByteArrayOutputStream; import java.io.InputStream; +import lombok.extern.slf4j.Slf4j; +import org.bouncycastle.cms.CMSException; import org.fugerit.java.core.cfg.ConfigRuntimeException; import org.fugerit.java.core.function.SafeFunction; import org.fugerit.java.doc.val.core.DocTypeValidationResult; @@ -13,6 +15,7 @@ import lombok.Getter; import lombok.Setter; +@Slf4j public class P7MContentValidator extends AbstractDocTypeValidator { public static final boolean DEFAULT_PROCEED_ON_INNTER_CHECK = Boolean.FALSE; @@ -51,10 +54,11 @@ public String checkInnerType(InputStream is ) { } else { throw new ConfigRuntimeException( "Content not valid for this validator facade!" ); } - } else { - return null; } + } catch (CMSException e) { + log.warn( String.format( "Error on inner check : %s", e ) ); } + return null; } ); } diff --git a/fj-doc-val-p7m/src/test/java/test/org/fugerit/java/doc/val/p7m/TestP7MContentValidator.java b/fj-doc-val-p7m/src/test/java/test/org/fugerit/java/doc/val/p7m/TestP7MContentValidator.java index 9ce7090ba..938059d6a 100644 --- a/fj-doc-val-p7m/src/test/java/test/org/fugerit/java/doc/val/p7m/TestP7MContentValidator.java +++ b/fj-doc-val-p7m/src/test/java/test/org/fugerit/java/doc/val/p7m/TestP7MContentValidator.java @@ -63,6 +63,11 @@ public void testP7MAsP7MKo() { Assert.assertTrue( ok ); } + @Test + public void testKO() { + Assert.assertNull( this.worker( CONTENT_JPG_PROCEED, "docx_as_docx.docx" ) ); + } + @Test public void testProccedKo() { Assert.assertNull( this.worker( CONTENT_JPG_PROCEED, FILENAME_PDF_AS_P7M ) ); diff --git a/fj-doc-val-p7m/src/test/resources/sample/docx_as_docx.docx b/fj-doc-val-p7m/src/test/resources/sample/docx_as_docx.docx new file mode 100644 index 000000000..4db2f89f8 Binary files /dev/null and b/fj-doc-val-p7m/src/test/resources/sample/docx_as_docx.docx differ