You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2020/06/05 14:57:32 UTC
svn commit: r1878515 - in
/pdfbox/branches/issue45/preflight/src/main/java/org/apache/pdfbox/preflight:
metadata/UniquePropertiesValidation.java
process/MetadataValidationProcess.java
Author: tilman
Date: Fri Jun 5 14:57:32 2020
New Revision: 1878515
URL: http://svn.apache.org/viewvc?rev=1878515&view=rev
Log:
PDFBOX-4860: check uniqueness of certain properties
Added:
pdfbox/branches/issue45/preflight/src/main/java/org/apache/pdfbox/preflight/metadata/UniquePropertiesValidation.java
- copied, changed from r1878494, pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/metadata/UniquePropertiesValidation.java
Modified:
pdfbox/branches/issue45/preflight/src/main/java/org/apache/pdfbox/preflight/process/MetadataValidationProcess.java
Copied: pdfbox/branches/issue45/preflight/src/main/java/org/apache/pdfbox/preflight/metadata/UniquePropertiesValidation.java (from r1878494, pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/metadata/UniquePropertiesValidation.java)
URL: http://svn.apache.org/viewvc/pdfbox/branches/issue45/preflight/src/main/java/org/apache/pdfbox/preflight/metadata/UniquePropertiesValidation.java?p2=pdfbox/branches/issue45/preflight/src/main/java/org/apache/pdfbox/preflight/metadata/UniquePropertiesValidation.java&p1=pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/metadata/UniquePropertiesValidation.java&r1=1878494&r2=1878515&rev=1878515&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/metadata/UniquePropertiesValidation.java (original)
+++ pdfbox/branches/issue45/preflight/src/main/java/org/apache/pdfbox/preflight/metadata/UniquePropertiesValidation.java Fri Jun 5 14:57:32 2020
@@ -32,6 +32,7 @@ import org.apache.xmpbox.schema.AdobePDF
import org.apache.xmpbox.schema.DublinCoreSchema;
import org.apache.xmpbox.schema.XMPBasicSchema;
import org.apache.xmpbox.schema.XMPSchema;
+import org.apache.xmpbox.type.AbstractField;
/**
* Class which checks that certain metadata properties are unique, see PDFBOX-4860.
@@ -53,7 +54,7 @@ public class UniquePropertiesValidation
public List<ValidationResult.ValidationError> validatePropertiesUniqueness(PDDocument document, XMPMetadata metadata)
throws ValidationException
{
- List<ValidationResult.ValidationError> ve = new ArrayList<>();
+ List<ValidationResult.ValidationError> ve = new ArrayList<ValidationResult.ValidationError>();
if (document == null)
{
@@ -82,11 +83,19 @@ public class UniquePropertiesValidation
{
return;
}
- if (schema.getAllProperties().stream().
- filter(field -> propertyName.equals(field.getPropertyName())).count() > 1)
+ int count = 0;
+ for (AbstractField field : schema.getAllProperties())
+ {
+ if (propertyName.equals(field.getPropertyName()))
+ {
+ ++count;
+ }
+ }
+ if (count > 1)
{
ve.add(new ValidationError(PreflightConstants.ERROR_METADATA_PROPERTY_FORMAT,
- propertyName + " property is not unique in schema " + schema.getNamespace()));
+ "property '" + schema.getPrefix() + ":" + propertyName +
+ "' occurs multiple times"));
}
}
}
Modified: pdfbox/branches/issue45/preflight/src/main/java/org/apache/pdfbox/preflight/process/MetadataValidationProcess.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/issue45/preflight/src/main/java/org/apache/pdfbox/preflight/process/MetadataValidationProcess.java?rev=1878515&r1=1878514&r2=1878515&view=diff
==============================================================================
--- pdfbox/branches/issue45/preflight/src/main/java/org/apache/pdfbox/preflight/process/MetadataValidationProcess.java (original)
+++ pdfbox/branches/issue45/preflight/src/main/java/org/apache/pdfbox/preflight/process/MetadataValidationProcess.java Fri Jun 5 14:57:32 2020
@@ -29,10 +29,7 @@ import java.util.ArrayList;
import java.util.List;
import javax.imageio.ImageIO;
import org.apache.pdfbox.cos.COSBase;
-import org.apache.pdfbox.cos.COSDictionary;
-import org.apache.pdfbox.cos.COSDocument;
import org.apache.pdfbox.cos.COSName;
-import org.apache.pdfbox.cos.COSObject;
import org.apache.pdfbox.cos.COSStream;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentCatalog;
@@ -45,8 +42,8 @@ import org.apache.pdfbox.preflight.metad
import org.apache.pdfbox.preflight.metadata.RDFAboutAttributeConcordanceValidation;
import org.apache.pdfbox.preflight.metadata.RDFAboutAttributeConcordanceValidation.DifferentRDFAboutException;
import org.apache.pdfbox.preflight.metadata.SynchronizedMetaDataValidation;
+import org.apache.pdfbox.preflight.metadata.UniquePropertiesValidation;
import org.apache.pdfbox.preflight.metadata.XpacketParsingException;
-import org.apache.pdfbox.preflight.utils.COSUtils;
import org.apache.pdfbox.util.Hex;
import org.apache.xmpbox.XMPMetadata;
import org.apache.xmpbox.schema.XMPBasicSchema;
@@ -90,6 +87,10 @@ public class MetadataValidationProcess e
addValidationErrors(ctx,
new SynchronizedMetaDataValidation().validateMetadataSynchronization(document, metadata));
+ // Call metadata uniqueness checking
+ addValidationErrors(ctx,
+ new UniquePropertiesValidation().validatePropertiesUniqueness(document, metadata));
+
// Call PDF/A Identifier checking
addValidationErrors(ctx, new PDFAIdentificationValidation().validatePDFAIdentifer(metadata));