RdfProcessingToolkit icon indicating copy to clipboard operation
RdfProcessingToolkit copied to clipboard

SPARQL insert results in a java.lang.NullPointerException

Open TBoonX opened this issue 2 years ago • 2 comments

I did start RPT with the following parameters: integrate -X --out-format txt edited2.ttl '* {?s ?p ?o }' --server

In the browser I did enter the following query:

PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX sh: <http://www.w3.org/ns/shacl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ns0: <http://rdfunit.aksw.org/ns/core#>

insert { ?testresult prov:wasAssociatedWith ?metric . }
where {
  	?testresult a ns0:TestCaseResult ;
		ns0:testCase ?bn .
	?bn a ?test .
  	?test rdfs:seeAlso ?metric .
}

edited2.ttl:

@prefix : <http://stream-ontology.com/maturitymodel/> .
@prefix rlog: <http://persistence.uni-leipzig.org/nlp2rdf/ontologies/rlog#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix dqv: <http://www.w3.org/ns/dqv#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ns0: <http://rdfunit.aksw.org/ns/core#> .
@prefix ownshaclcorrectness: <http://stream-ontology.com/maturitymodel/shapes/Correctness/> .
@prefix msv: <http://stream-ontology.com/metrics-severity/> .
@prefix qb: <http://purl.org/linked-data/cube#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix prov: <http://www.w3.org/ns/prov#> .

ownshaclcorrectness:2
        rdfs:seeAlso  :M2 .

ownshaclcorrectness:1
        rdfs:seeAlso  :M1 .

<urn:uuid:85a78c5a-233a-439f-918f-514568c85f58>
        sh:conforms                false ;
        ns0:testsTimeout           "0"^^xsd:nonNegativeInteger ;
        prov:wasStartedBy          <http://localhost/> ;
        prov:startedAtTime         "2022-06-20T14:41:08.088Z"^^xsd:dateTime ;
        ns0:testsSuceedded         "1"^^xsd:nonNegativeInteger ;
        ns0:testsError             "0"^^xsd:nonNegativeInteger ;
        prov:endedAtTime           "2022-06-20T14:41:08.167Z"^^xsd:dateTime ;
        rdf:type                   ns0:TestExecution ;
        ns0:testsRun               "2"^^xsd:nonNegativeInteger ;
        rdf:type                   prov:Activity ;
        ns0:testsFailed            "1"^^xsd:nonNegativeInteger ;
        sh:result                  <urn:uuid:85a78c5a-233a-439f-918f-514568c85f58/bebe5da3-32f6-4234-bf0e-1948cd770f69> ;
        ns0:executionType          "shaclTestCaseResult" ;
        ns0:source                 <http://example.de/dataset1> ;
        rdf:type                   sh:ValidationReport ;
        prov:wasAssociatedWith     <file:///app/maturityModel/shapes.ttl> ;
        ns0:totalIndividualErrors  "1"^^xsd:nonNegativeInteger .


<urn:uuid:85a78c5a-233a-439f-918f-514568c85f58/bebe5da3-32f6-4234-bf0e-1948cd770f69>
        dcterms:date         "2022-06-20T14:41:08.149Z"^^xsd:dateTime ;
        ns0:testCase         _:b4 ;
        rdf:type             ns0:TestCaseResult ;
        rdf:type             sh:ValidationResult ;
        prov:wasGeneratedBy  <urn:uuid:85a78c5a-233a-439f-918f-514568c85f58> ;
        sh:focusNode         <http://stream-ontology.com/matvoc-core/> ;
        sh:message           "The ontology should provide some basic metadata, like rdfs:comment, dct:creator, rdfs:label, owl:versionInfo, dct:modified and owl:priorVersion." ;
        sh:severity          rlog:WARN .


_:b4    rdf:type  ownshaclcorrectness:1 .

Error:

java.lang.NullPointerException
	at org.apache.jena.update.UpdateExecutionDatasetBuilder.dataset(UpdateExecutionDatasetBuilder.java:70)
	at org.apache.jena.update.UpdateExecution.dataset(UpdateExecution.java:33)
	at org.apache.jena.update.UpdateExecutionFactory.make(UpdateExecutionFactory.java:236)
	at org.apache.jena.update.UpdateExecutionFactory.create(UpdateExecutionFactory.java:123)
	at org.aksw.jenax.arq.connection.core.RDFConnectionUtils$1.update(RDFConnectionUtils.java:171)
	at org.aksw.jenax.arq.connection.fix.RDFLinkAdapterFix.update(RDFLinkAdapterFix.java:43)
	at org.apache.jena.rdflink.RDFLinkModular.update(RDFLinkModular.java:116)
	at org.apache.jena.rdflink.RDFConnectionAdapter.update(RDFConnectionAdapter.java:131)
	at org.aksw.jenax.web.servlet.SparqlEndpointBase.processUpdateAsync(SparqlEndpointBase.java:526)
	at org.aksw.jenax.web.servlet.SparqlEndpointBase.processStmtAsync(SparqlEndpointBase.java:269)
	at org.aksw.jenax.web.servlet.SparqlEndpointBase.executeWildcardPost(SparqlEndpointBase.java:78)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124)
	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167)
	at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$VoidOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:159)
	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79)
	at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:469)
	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:391)
	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:80)
	at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:253)
	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
	at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
	at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
	at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)
	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:232)
	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:680)
	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394)
	at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)
	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:366)
	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:319)
	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1626)
	at org.aksw.jenax.web.filter.SparqlStmtTypeAcceptHeaderFilter.doFilter(SparqlStmtTypeAcceptHeaderFilter.java:142)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at org.aksw.jenax.web.filter.FilterPost.doFilter(FilterPost.java:40)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at org.aksw.jenax.web.filter.CorsFilter.doFilter(CorsFilter.java:48)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1435)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:516)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:383)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:882)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1036)
	at java.base/java.lang.Thread.run(Thread.java:829)

TBoonX avatar Jun 20 '22 15:06 TBoonX

Important: I did built RPT in the jena-4.6.0 branch

TBoonX avatar Jun 21 '22 11:06 TBoonX

A recent PR related to NPE with the RDFLink/exec machinery was accepted at jena four days ago https://github.com/apache/jena/pull/1394 This means that fix is part of the jena snapshot releases which are downloaded by maven when using the rpt's jena-4.6.0 branch.

But AFAIK I didn't touch the dataset method where this exception happens - so I may be yet another issue - will investigate.

Aklakan avatar Jun 26 '22 08:06 Aklakan

works for me in rpt 1.9.2-rc

SimonBin avatar Jan 20 '23 10:01 SimonBin