[ https://issues.apache.org/jira/browse/JENA-1979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17212255#comment-17212255 ]
Jan Rosecky commented on JENA-1979: ----------------------------------- That was quick, thanks Andy! (y) > 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 > Assignee: Andy Seaborne > Priority: Major > Fix For: Jena 3.17.0 > > Attachments: data.ttl, shapes.ttl > > Time Spent: 20m > Remaining Estimate: 0h > > h2. How to replicate > 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);}} > Files attached. > h2. What is happening > 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)