imas/rdflint

SHACLのShapeに記述誤りがある場合にNullPointerExceptionが発生する

takemikami opened this issue · 1 comments

以下のようなケースでNullPointerExceptionとなるので、
Shapeの構文エラーであることがわかるようにしたい。

例: sh:pathとすべきところが、sh:passとなっている

imas-shape:IdolShape a sh:NodeShape;
    sh:targetClass imas:Idol;
    sh:property [
        rdfs:label "アイドルの登場するコンテンツのタイトルの制約";
        sh:pass imas:Title;
        sh:datatype rdf:langString;
        sh:minCount 1;
    ];

発生するエラー

Exception in thread "main" java.lang.NullPointerException
	at org.topbraid.shacl.validation.java.ClosedConstraintExecutor.<init>(ClosedConstraintExecutor.java:34)
	at org.topbraid.shacl.validation.java.JavaConstraintExecutors.lambda$static$2(JavaConstraintExecutors.java:20)
	at org.topbraid.shacl.validation.ConstraintExecutors.getExecutor(ConstraintExecutors.java:81)
	at org.topbraid.shacl.engine.Constraint.getExecutor(Constraint.java:98)
	at org.topbraid.shacl.validation.ValidationEngine.validateNodesAgainstConstraint(ValidationEngine.java:488)
	at org.topbraid.shacl.validation.ValidationEngine.validateAll(ValidationEngine.java:368)
	at org.topbraid.shacl.validation.ValidationUtil.validateModel(ValidationUtil.java:121)
	at org.topbraid.shacl.validation.ValidationUtil.validateModel(ValidationUtil.java:102)
	at com.github.imas.rdflint.validator.impl.ShaclValidator.prepareValidationResource(ShaclValidator.java:41)
	at com.github.imas.rdflint.ValidationRunner.lambda$execute$6(ValidationRunner.java:93)
	at java.base/java.lang.Iterable.forEach(Iterable.java:75)
	at com.github.imas.rdflint.ValidationRunner.execute(ValidationRunner.java:92)
	at com.github.imas.rdflint.RdfLint.lintRdfDataSet(RdfLint.java:201)
	at com.github.imas.rdflint.RdfLint.main(RdfLint.java:116)

再現せず(エラーハンドリングまわりのissue対応で解消されたと思われる).
#99 でエラー原因はわかるようになったためOK