AKSW / LSQ

Linked SPARQL Queries (LSQ): Framework for RDFizing triple store (web) logs and performing SPARQL query extraction, analysis and benchmarking in order to produce datasets of Linked SPARQL Queries
http://lsq.aksw.org
Apache License 2.0
25 stars 11 forks source link

NullPointerException using rdfize #45

Closed miguel76 closed 2 years ago

miguel76 commented 2 years ago

I get the NullPointerEception copied below when using the rdfize command with the --slim option on.

Turns out that SparqlMappers.fallbackToVisitor() (package org.aksw.jena_sparql_api.rx.io.resultset, artifact jenax-arq-rx, ver. 4.5.0-1-SNAPSHOT) calls SparqlStmtUtils.execAny() (package org.aksw.jenax.stmt.util, artifact jenax-arq-stmt, ver. 4.5.0-1-SNAPSHOT) with a value of null for the parameter cxtMutator, leading later to the exception.

java.lang.NullPointerException: Cannot invoke "java.util.function.Consumer.accept(Object)" because "cxtMutator" is null
    at org.aksw.jenax.stmt.util.SparqlStmtUtils.execAny(SparqlStmtUtils.java:471)
    at org.aksw.jena_sparql_api.rx.io.resultset.SparqlMappers.fallbackToVisitor(SparqlMappers.java:108)
    at org.aksw.jena_sparql_api.rx.io.resultset.SparqlMappers.lambda$createMapperQuad$9(SparqlMappers.java:198)
    at io.reactivex.rxjava3.internal.operators.flowable.FlowableFlatMap$MergeSubscriber.onNext(FlowableFlatMap.java:130)
    at io.reactivex.rxjava3.internal.operators.flowable.FlowableFromIterable$IteratorSubscription.slowPath(FlowableFromIterable.java:243)
    at io.reactivex.rxjava3.internal.operators.flowable.FlowableFromIterable$BaseRangeSubscription.request(FlowableFromIterable.java:131)
    at io.reactivex.rxjava3.internal.operators.flowable.FlowableFlatMap$MergeSubscriber.onSubscribe(FlowableFlatMap.java:115)
    at io.reactivex.rxjava3.internal.operators.flowable.FlowableFromIterable.subscribe(FlowableFromIterable.java:69)
    at io.reactivex.rxjava3.internal.operators.flowable.FlowableFromIterable.subscribeActual(FlowableFromIterable.java:47)
    at io.reactivex.rxjava3.core.Flowable.subscribe(Flowable.java:15917)
    at io.reactivex.rxjava3.internal.operators.flowable.FlowableFlatMap.subscribeActual(FlowableFlatMap.java:51)
    at io.reactivex.rxjava3.core.Flowable.subscribe(Flowable.java:15917)
    at io.reactivex.rxjava3.core.Flowable.subscribe(Flowable.java:15863)
    at io.reactivex.rxjava3.internal.operators.flowable.FlowableReduceWithSingle.subscribeActual(FlowableReduceWithSingle.java:58)
    at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4855)
    at io.reactivex.rxjava3.internal.operators.single.SingleMap.subscribeActual(SingleMap.java:35)
    at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4855)
    at io.reactivex.rxjava3.core.Single.blockingGet(Single.java:3644)
    at org.aksw.jena_sparql_api.rx.io.resultset.SparqlMappers.lambda$createMapperDataset$13(SparqlMappers.java:230)
    at java.base/java.util.function.Function.lambda$andThen$1(Function.java:88)
    at org.aksw.jena_sparql_api.rx.io.resultset.SparqlMappers.lambda$mapDatasetToConnection$2(SparqlMappers.java:81)
    at org.aksw.jena_sparql_api.rx.dataset.DatasetFlowOps.lambda$createItemMultiMapper$10(DatasetFlowOps.java:236)
    at org.aksw.commons.rx.op.RxOps.lambda$createParallelMapperOrdered$5(RxOps.java:60)
    at io.reactivex.rxjava3.internal.operators.parallel.ParallelMap$ParallelMapSubscriber.onNext(ParallelMap.java:116)
    at io.reactivex.rxjava3.internal.operators.parallel.ParallelRunOn$RunOnSubscriber.run(ParallelRunOn.java:275)
    at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:65)
    at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:56)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base/java.lang.Thread.run(Thread.java:833)
Aklakan commented 2 years ago

Thanks for the report - indeed the null check was missing for sparql update statements. Fixed in jenax 4.7.0-SNAPSHOT.