ANY23-318 ExtractionException handling in BaseRDFExtractor.java kills entire extraction
Project: http://git-wip-us.apache.org/repos/asf/any23/repo Commit: http://git-wip-us.apache.org/repos/asf/any23/commit/15571d45 Tree: http://git-wip-us.apache.org/repos/asf/any23/tree/15571d45 Diff: http://git-wip-us.apache.org/repos/asf/any23/diff/15571d45 Branch: refs/heads/master Commit: 15571d45f89e8c63b8da6a699b345131d4433ad9 Parents: 8556992 Author: Lewis John McGibbney <[email protected]> Authored: Sat Dec 30 17:08:41 2017 +0000 Committer: Lewis John McGibbney <[email protected]> Committed: Sat Dec 30 17:08:41 2017 +0000 ---------------------------------------------------------------------- .../org/apache/any23/validator/DefaultValidator.java | 13 ++++++++++--- .../rule/MissingItemscopeAttributeValueFix.java | 6 +----- .../apache/any23/validator/DefaultValidatorTest.java | 4 ++-- 3 files changed, 13 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/any23/blob/15571d45/core/src/main/java/org/apache/any23/validator/DefaultValidator.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/any23/validator/DefaultValidator.java b/core/src/main/java/org/apache/any23/validator/DefaultValidator.java index 6ad2509..097a346 100644 --- a/core/src/main/java/org/apache/any23/validator/DefaultValidator.java +++ b/core/src/main/java/org/apache/any23/validator/DefaultValidator.java @@ -46,11 +46,12 @@ public class DefaultValidator implements Validator { private List<Class<? extends Rule>> rulesOrder; public DefaultValidator() { - rulesToFixes = new HashMap<Class<? extends Rule>, List<Class<? extends Fix>>>(); - rulesOrder = new ArrayList<Class<? extends Rule>>(); + rulesToFixes = new HashMap<>(); + rulesOrder = new ArrayList<>(); loadDefaultRules(); } + @Override public ValidationReport validate(DOMDocument document, boolean applyFix) throws ValidatorException { final ValidationReportBuilder validationReportBuilder = new DefaultValidationReportBuilder(); @@ -81,15 +82,17 @@ public class DefaultValidator implements Validator { return validationReportBuilder.getReport(); } + @Override public ValidationReport validate(URI documentIRI, Document document, boolean applyFix) throws ValidatorException { return validate( new DefaultDOMDocument(documentIRI, document), applyFix ); } + @Override public synchronized void addRule(Class<? extends Rule> rule, Class<? extends Fix> fix) { List<Class<? extends Fix>> fixes = rulesToFixes.get(rule); if(fixes == null) { - fixes = new ArrayList<Class<? extends Fix>>(); + fixes = new ArrayList<>(); } rulesOrder.add(rule); rulesToFixes.put(rule, fixes); @@ -98,19 +101,23 @@ public class DefaultValidator implements Validator { } } + @Override public void addRule(Class<? extends Rule> rule) { addRule(rule, null); } + @Override public synchronized void removeRule(Class<? extends Rule> rule) { rulesOrder.remove(rule); rulesToFixes.remove(rule); } + @Override public List<Class<? extends Rule>> getAllRules() { return Collections.unmodifiableList(rulesOrder); } + @Override public List<Class<? extends Fix>> getFixes(Class<? extends Rule> rule) { List<Class<? extends Fix>> fixes = rulesToFixes.get(rule); return fixes == null http://git-wip-us.apache.org/repos/asf/any23/blob/15571d45/core/src/main/java/org/apache/any23/validator/rule/MissingItemscopeAttributeValueFix.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/any23/validator/rule/MissingItemscopeAttributeValueFix.java b/core/src/main/java/org/apache/any23/validator/rule/MissingItemscopeAttributeValueFix.java index 58e4f11..45fa210 100644 --- a/core/src/main/java/org/apache/any23/validator/rule/MissingItemscopeAttributeValueFix.java +++ b/core/src/main/java/org/apache/any23/validator/rule/MissingItemscopeAttributeValueFix.java @@ -31,7 +31,7 @@ import org.w3c.dom.Node; */ public class MissingItemscopeAttributeValueFix implements Fix { - private static final String EMPTY_ITEMSCOPE_VALUE = ""; + private static final String EMPTY_ITEMSCOPE_VALUE = "itemscope"; private static final String ITEMSCOPE = "itemscope"; @@ -57,10 +57,6 @@ public class MissingItemscopeAttributeValueFix implements Fix { if (itemScopeNode.getTextContent() == null || itemScopeNode.getTextContent() == "") { String node = DomUtils.getXPathForNode(itemScopeContainerElement); document.addAttribute(node, ITEMSCOPE, EMPTY_ITEMSCOPE_VALUE); - //newItemScopeContainerElement.getAttributes().removeNamedItem(ITEMSCOPE); - //Attr newItemScopeNode = document.getOriginalDocument().createAttribute(ITEMSCOPE); - //newItemScopeNode.setNodeValue(EMPTY_ITEMSCOPE_VALUE); - //newItemScopeContainerElement.getAttributes().setNamedItem(newItemScopeNode); } } } http://git-wip-us.apache.org/repos/asf/any23/blob/15571d45/core/src/test/java/org/apache/any23/validator/DefaultValidatorTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/any23/validator/DefaultValidatorTest.java b/core/src/test/java/org/apache/any23/validator/DefaultValidatorTest.java index 7917670..13f393b 100644 --- a/core/src/test/java/org/apache/any23/validator/DefaultValidatorTest.java +++ b/core/src/test/java/org/apache/any23/validator/DefaultValidatorTest.java @@ -88,9 +88,9 @@ public class DefaultValidatorTest { ValidationReport validationReport = validator.validate(document, true); List<Node> fixedItemScopeNodes = document.getNodesWithAttribute("itemscope"); for (Node node : fixedItemScopeNodes) { - // all nodes with itemscope now have a default value of "" e.g. empty string + // all nodes with itemscope now have a default value of "itemscope" Assert.assertNotNull(node.getAttributes().getNamedItem("itemscope").getNodeValue() ); - Assert.assertEquals("", node.getAttributes().getNamedItem("itemscope").getNodeValue() ); + Assert.assertEquals("itemscope", node.getAttributes().getNamedItem("itemscope").getNodeValue() ); } if(logger.isDebugEnabled()) { logger.debug( validationReport.toString() );
