Jan Rosecky created JENA-1979: --------------------------------- Summary: SHACL validation: NullPointerException when shapes with sh:alternativePath importing <http://datashapes.org/dash> Key: JENA-1979 URL: https://issues.apache.org/jira/browse/JENA-1979 Project: Apache Jena Issue Type: Bug Components: SHACL Affects Versions: Jena 3.16.0 Environment: Run
{{Graph shapesGraph = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM).read("shapes.ttl", "TTL").getGraph();}} {{ Graph dataGraph = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM).read("data.ttl", "TTL").getGraph();}} {{ validator = ShaclValidator.get();}} {{ return validator.validate(shapesGraph, dataGraph);}} Reporter: Jan Rosecky Attachments: data.ttl, shapes.ttl The exception happens when a property shape with sh:alternativePath is evaluated inside ConstraintComponentSPARQL. I'm not sure why however it only happens when dash/tosh shapes are imported by a shape. The exception seems to happen on line 239 of SparqlValidation.java: {{RDFNode z = ModelUtils.convertGraphNodeToRDFNode(ShaclPaths.pathNode(path), model);}} where pathNode() returns null - only supporting P_Link, not P_Alt and convertGraphNodeToRDFNode() then runs unchecked node.isVariable(). Stack trace: {{parameterMapToPreBinding:239, SparqlValidation (org.apache.jena.shacl.engine.constraint)}} {{validateMap:122, SparqlValidation (org.apache.jena.shacl.engine.constraint)}} {{validate:87, SparqlValidation (org.apache.jena.shacl.engine.constraint)}} {{lambda$validatePropertyShape$0:69, ConstraintComponentSPARQL (org.apache.jena.shacl.engine.constraint)}} {{accept:-1, 1035363280 (org.apache.jena.shacl.engine.constraint.ConstraintComponentSPARQL$$Lambda$125)}} {{forEach:75, Iterable (java.lang)}} {{validatePropertyShape:68, ConstraintComponentSPARQL (org.apache.jena.shacl.engine.constraint)}} {{evalConstraint:264, ValidationProc (org.apache.jena.shacl.validation)}} {{validationPropertyShape:248, ValidationProc (org.apache.jena.shacl.validation)}} {{validationPropertyShapes:228, ValidationProc (org.apache.jena.shacl.validation)}} {{validateShape:219, ValidationProc (org.apache.jena.shacl.validation)}} {{simpleValidationInternal:178, ValidationProc (org.apache.jena.shacl.validation)}} {{simpleValidation:122, ValidationProc (org.apache.jena.shacl.validation)}} {{simpleValidation:109, ValidationProc (org.apache.jena.shacl.validation)}} {{simpleValidation:101, ValidationProc (org.apache.jena.shacl.validation)}} {{validate:79, ShaclSimpleValidator (org.apache.jena.shacl.validation)}} {{validate:91, ShaclSimpleValidator (org.apache.jena.shacl.validation)}} {{validate:23, mytest (com.msd.gin.mrlitdi.test)}} {{run:17, mytest (com.msd.gin.mrlitdi.test)}} {{invoke0:-1, NativeMethodAccessorImpl (sun.reflect)}} {{invoke:62, NativeMethodAccessorImpl (sun.reflect)}} {{invoke:43, DelegatingMethodAccessorImpl (sun.reflect)}} {{invoke:498, Method (java.lang.reflect)}} {{runReflectiveCall:50, FrameworkMethod$1 (org.junit.runners.model)}} {{run:12, ReflectiveCallable (org.junit.internal.runners.model)}} {{invokeExplosively:47, FrameworkMethod (org.junit.runners.model)}} {{evaluate:17, InvokeMethod (org.junit.internal.runners.statements)}} {{runLeaf:325, ParentRunner (org.junit.runners)}} {{runChild:78, BlockJUnit4ClassRunner (org.junit.runners)}} {{runChild:57, BlockJUnit4ClassRunner (org.junit.runners)}} {{run:290, ParentRunner$3 (org.junit.runners)}} {{schedule:71, ParentRunner$1 (org.junit.runners)}} {{runChildren:288, ParentRunner (org.junit.runners)}} {{access$000:58, ParentRunner (org.junit.runners)}} {{evaluate:268, ParentRunner$2 (org.junit.runners)}} {{run:363, ParentRunner (org.junit.runners)}} {{run:137, JUnitCore (org.junit.runner)}} {{startRunnerWithArgs:69, JUnit4IdeaTestRunner (com.intellij.junit4)}} {{startRunnerWithArgs:33, IdeaTestRunner$Repeater (com.intellij.rt.junit)}} {{prepareStreamsAndStart:220, JUnitStarter (com.intellij.rt.junit)}} {{main:53, JUnitStarter (com.intellij.rt.junit)}} -- This message was sent by Atlassian Jira (v8.3.4#803005)