Git Product home page Git Product logo

Comments (9)

Aklakan avatar Aklakan commented on June 14, 2024 2
  • Long term - create a new issue and PR to migrate the plugin to using the new preferred cache APIs

I did a quick check for what parts of guava my service enhancer code uses - and its only the cache.
The caffeine cache is transitively provided by arq via atlas - so migrating the service enhancer plugin to caffeine should restore "drop-in" functionality. I'll look into it.

from jena.

OyvindLGjesdal avatar OyvindLGjesdal commented on June 14, 2024 1

The second problem is just a misconfigured assembler on my part and is now solved.

correlated joins are enabled and working, when it is placed in between the service and the dataset.

Fixed assembler

@prefix fuseki:  <http://jena.apache.org/fuseki#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix tdb:     <http://jena.hpl.hp.com/2008/tdb#> .
@prefix tdb2:    <http://jena.apache.org/2016/tdb#> .
@prefix text:    <http://jena.apache.org/text#> .
@prefix ja:      <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix spatial: <http://jena.apache.org/spatial#> .
@prefix se: <http://jena.apache.org/service-enhancer#> .
@prefix :        <#> .


<#service>
    rdf:type fuseki:Service  ;
    fuseki:name "sparql" ;
    fuseki:serviceQuery "query" ;
    ja:context [ ja:cxtName "arq:logExec" ;  ja:cxtValue "info" ], [ja:cxtName "arq:optReorderBGP" ; ja:cxtValue "info"];

    fuseki:endpoint [ fuseki:operation fuseki:shacl ;
        fuseki:name "shacl" ];
    fuseki:dataset <#serviceenhancer> ;

    fuseki:serviceReadGraphStore "data" ;
    .

<#serviceenhancer>  a se:DatasetServiceEnhancer ;
 ja:baseDataset <#dataset>.


<#dataset> rdf:type tdb:DatasetTDB ;    tdb:location "/var/fuseki/databases/sparql" ;
    tdb:unionDefaultGraph true ;
    .

from jena.

rvesse avatar rvesse commented on June 14, 2024

I see guava was added for use not that long ago, would it make sense to add the dependency to the service-enhancer pom.xml? to ensure that it is loaded, or could it be that it is my user error?

I thought actually the opposite was true, Guava was removed in favour of ben-manes/caffeine since we were only really using Guava for caching and the lack of stability in Guava APIs meant we were having to mess around with shading which we no longer wanted to do.

So this might be a side-effect of that, the service enhancer plugin previously assumed that it would get Guava transitively from elsewhere in Jena which is no longer true.

So yes probably two options:

  • Short term - explicitly add Guava as a local dependency to your Fuseki Classpath
  • Long term - create a new issue and PR to migrate the plugin to using the new preferred cache APIs

from jena.

afs avatar afs commented on June 14, 2024

Google Guava also has dependencies:

[INFO] +- com.google.guava:guava:jar:32.1.3-jre:compile
[INFO] |  +- com.google.guava:failureaccess:jar:1.0.1:compile
[INFO] |  +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile
[INFO] |  +- com.google.code.findbugs:jsr305:jar:3.0.2:compile
[INFO] |  \- com.google.j2objc:j2objc-annotations:jar:2.8:compile

from jena.

OyvindLGjesdal avatar OyvindLGjesdal commented on June 14, 2024

https://github.com/apache/jena/blob/jena-4.10.0/jena-extras/jena-serviceenhancer/pom.xml#L103
It looks like the artefact published isn't built using the profile bundle, which runs shading.

  <!-- Profile to build a "plugin jar bundle" that can be loaded with fuseki or any other jena-based app -->
  <profiles>
    <profile>
      <id>bundle</id>
      <dependencies>
        <dependency>
          <groupId>org.apache.jena</groupId>
          <artifactId>jena-arq</artifactId>
          <version>4.10.0</version>
          <scope>provided</scope>
        </dependency>
      </dependencies>

When I actived the profile (by setting activeByDefault true) and built the outputs, the jar is a 3 MB vs 207 KB. Will check if it launches tomorrow.

Outputs of build at 4.10 with profile active:

drwxr-xr-x@ 14    448B Jan  9 21:40 .
drwxr-xr-x@  7    224B Jan  9 21:41 ..
-rw-r--r--@  1     30B Jan  9 21:39 .plxarc
drwxr-xr-x@  4    128B Jan  9 21:39 classes
drwxr-xr-x@  3     96B Jan  9 21:39 generated-sources
drwxr-xr-x@  3     96B Jan  9 21:39 generated-test-sources
-rw-r--r--@  1    165K Jan  9 21:40 jena-serviceenhancer-4.10.0-sources.jar
-rw-r--r--@  1    3.1M Jan  9 21:40 jena-serviceenhancer-4.10.0.jar
drwxr-xr-x@  3     96B Jan  9 21:40 maven-archiver
drwxr-xr-x@  3     96B Jan  9 21:39 maven-shared-archive-resources
drwxr-xr-x@  3     96B Jan  9 21:39 maven-status
-rw-r--r--@  1    207K Jan  9 21:40 original-jena-serviceenhancer-4.10.0.jar
drwxr-xr-x@ 16    512B Jan  9 21:40 surefire-reports
drwxr-xr-x@  6    192B Jan  9 21:39 test-classes

from jena.

OyvindLGjesdal avatar OyvindLGjesdal commented on June 14, 2024

It starts up when dropped in, but the first example in the docs using wikidata fails with a timeout.

It looks like a different bug, either in the example, or in the rewriting, where the ?s values aren't injected.

If the VALUES clause are moved into the service, there is a cache result.

The example from the docs:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX wd: <http://www.wikidata.org/entity/>
SELECT ?s ?l {
  # The ids below correspond in order to: Apache Jena, Semantic Web, RDF, SPARQL, Andy Seaborne
  VALUES ?s { wd:Q1686799 wd:Q54837 wd:Q54872 wd:Q54871 wd:Q108379795 }
 
  SERVICE <cache:loop:bulk+5:https://query.wikidata.org/sparql> {
    SELECT ?l {
      ?s rdfs:label ?l
      FILTER(langMatches(lang(?l), 'en'))
    } ORDER BY ?l LIMIT 1
  }
}

Configuration of endpoint in /var/fuseki/configuration/sparql.ttl

@prefix fuseki:  <http://jena.apache.org/fuseki#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix tdb:     <http://jena.hpl.hp.com/2008/tdb#> .
@prefix tdb2:    <http://jena.apache.org/2016/tdb#> .
@prefix text:    <http://jena.apache.org/text#> .
@prefix ja:      <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix spatial: <http://jena.apache.org/spatial#> .
@prefix se: <http://jena.apache.org/service-enhancer#> .
@prefix :        <#> .


<#service> rdf:type fuseki:Service ;
    rdf:type se:DatasetServiceEnhancer ;
    fuseki:name "sparql" ;
    fuseki:serviceQuery "query" ;
    ja:context [ ja:cxtName "arq:logExec" ;  ja:cxtValue "info" ], [ja:cxtName "arq:optReorderBGP" ; ja:cxtValue "info"];

    fuseki:endpoint [ fuseki:operation fuseki:shacl ;
        fuseki:name "shacl" ];
    fuseki:dataset <#dataset> ;

    fuseki:serviceReadGraphStore "data" ;
    .

<#dataset> rdf:type tdb:DatasetTDB ;    tdb:location "/var/fuseki/databases/sparql" ;
    tdb:unionDefaultGraph true ;

from the logs:

Jan 10 10:18:10 server fuseki-server[98423]: PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
Jan 10 10:18:10 server fuseki-server[98423]: PREFIX wd: <http://www.wikidata.org/entity/>
Jan 10 10:18:10 server fuseki-server[98423]: SELECT ?s ?l {
Jan 10 10:18:10 server fuseki-server[98423]:   # The ids below correspond in order to: Apache Jena, Semantic Web, RDF, SPARQL, Andy Seaborne
Jan 10 10:18:10 server fuseki-server[98423]:   VALUES ?s { wd:Q1686799 wd:Q54837 wd:Q54872 wd:Q54871 wd:Q108379795 }
Jan 10 10:18:10 server fuseki-server[98423]:
Jan 10 10:18:10 server fuseki-server[98423]:   SERVICE <cache:loop:bulk+5:https://query.wikidata.org/sparql> {
Jan 10 10:18:10 server fuseki-server[98423]:     SELECT ?l {
Jan 10 10:18:10 server fuseki-server[98423]:       ?s rdfs:label ?l
Jan 10 10:18:10 server fuseki-server[98423]:       FILTER(langMatches(lang(?l), 'en'))
Jan 10 10:18:10 server fuseki-server[98423]:     } ORDER BY ?l LIMIT 1
Jan 10 10:18:10 server fuseki-server[98423]:   }
Jan 10 10:18:10 server fuseki-server[98423]: }
Jan 10 10:18:10 server fuseki-server[98423]: 10:18:10 INFO  QueryIterServiceBulk :: Schedule for current batch:
Jan 10 10:18:10 server fuseki-server[98423]: 10:18:10 INFO  QueryIterServiceBulk :: input 0: [[0..1)=fetch]
Jan 10 10:18:10 server fuseki-server[98423]: 10:18:10 INFO  BatchQueryRewriter :: Rewritten bulk query: SELECT  *
Jan 10 10:18:10 server fuseki-server[98423]: WHERE
Jan 10 10:18:10 server fuseki-server[98423]:   {   { { SELECT  ?l
Jan 10 10:18:10 server fuseki-server[98423]:           WHERE
Jan 10 10:18:10 server fuseki-server[98423]:             { ?s  <http://www.w3.org/2000/01/rdf-schema#label>  ?l
Jan 10 10:18:10 server fuseki-server[98423]:               FILTER langMatches(lang(?l), "en")
Jan 10 10:18:10 server fuseki-server[98423]:             }
Jan 10 10:18:10 server fuseki-server[98423]:           ORDER BY ?l
Jan 10 10:18:10 server fuseki-server[98423]:           LIMIT   1
Jan 10 10:18:10 server fuseki-server[98423]:         }
Jan 10 10:18:10 server fuseki-server[98423]:         BIND(0 AS ?__idx__)
Jan 10 10:18:10 server fuseki-server[98423]:       }
Jan 10 10:18:10 server fuseki-server[98423]:     UNION
Jan 10 10:18:10 server fuseki-server[98423]:       { BIND(1000000000 AS ?__idx__) }
Jan 10 10:19:10 server fuseki-server[98423]: 10:19:10 WARN  Fuseki          :: [3] RC = 500 : Prefetching data failed. Reason: Server Error
Jan 10 10:19:10 server fuseki-server[98423]: java.lang.RuntimeException: Prefetching data failed. Reason: Server Error
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.service.enhancer.impl.util.SinglePrefetchIterator._prefetch(SinglePrefetchIterator.java:68) ~[jena-serviceenhancer-4.10.0.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.service.enhancer.impl.util.SinglePrefetchIterator.hasNext(SinglePrefetchIterator.java:77) ~[jena-serviceenhancer-4.10.0.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.atlas.iterator.IteratorWrapper.hasNext(IteratorWrapper.java:37) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.atlas.iterator.IteratorOnClose.hasNext(IteratorOnClose.java:45) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.iterator.QueryIterPlainWrapper.hasNextBinding(QueryIterPlainWrapper.java:59) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:116) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.iterator.QueryIterPeek.hasNextBinding(QueryIterPeek.java:57) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:116) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.service.enhancer.impl.QueryIterServiceBulk.moveToNext(QueryIterServiceBulk.java:201) ~[jena-serviceenhancer-4.10.0.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.service.enhancer.impl.QueryIterServiceBulk.moveToNext(QueryIterServiceBulk.java:82) ~[jena-serviceenhancer-4.10.0.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.atlas.iterator.IteratorSlotted.hasNext(IteratorSlotted.java:63) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.iterator.QueryIterConvert.hasNextBinding(QueryIterConvert.java:58) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:116) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.iterator.QueryIterPeek.hasNextBinding(QueryIterPeek.java:57) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:116) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.service.enhancer.impl.RequestExecutor.moveToNext(RequestExecutor.java:112) ~[jena-serviceenhancer-4.10.0.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.service.enhancer.impl.RequestExecutor.moveToNext(RequestExecutor.java:53) ~[jena-serviceenhancer-4.10.0.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.atlas.iterator.IteratorSlotted.hasNext(IteratorSlotted.java:63) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.join.QueryIterHashJoin.create(QueryIterHashJoin.java:47) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.join.QueryIterHashJoin.create(QueryIterHashJoin.java:66) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.join.Join.hashJoin(Join.java:115) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.join.Join.join(Join.java:58) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.main.OpExecutor.execute(OpExecutor.java:216) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.main.ExecutionDispatch.visit(ExecutionDispatch.java:110) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.algebra.op.OpJoin.visit(OpJoin.java:75) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.main.ExecutionDispatch.exec(ExecutionDispatch.java:43) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.main.OpExecutor.exec(OpExecutor.java:115) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.tdb.solver.OpExecutorTDB1.exec(OpExecutorTDB1.java:87) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.main.OpExecutor.execute(OpExecutor.java:393) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.main.ExecutionDispatch.visit(ExecutionDispatch.java:243) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.algebra.op.OpProject.visit(OpProject.java:46) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.main.ExecutionDispatch.exec(ExecutionDispatch.java:43) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.main.OpExecutor.exec(OpExecutor.java:115) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.tdb.solver.OpExecutorTDB1.exec(OpExecutorTDB1.java:87) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.main.OpExecutor.execute(OpExecutor.java:87) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.main.QC.execute(QC.java:53) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.main.QueryEngineMain.eval(QueryEngineMain.java:55) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.tdb.solver.QueryEngineTDB.eval(QueryEngineTDB.java:102) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.QueryEngineBase.evaluate(QueryEngineBase.java:164) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.QueryEngineBase.createPlan(QueryEngineBase.java:128) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.QueryEngineBase.getPlan(QueryEngineBase.java:110) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.tdb.solver.QueryEngineTDB$QueryEngineFactoryTDB.create(QueryEngineTDB.java:136) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.exec.QueryExecDataset.getPlan(QueryExecDataset.java:514) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.exec.QueryExecDataset.startQueryIterator(QueryExecDataset.java:477) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.exec.QueryExecDataset.execute(QueryExecDataset.java:170) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.exec.QueryExecDataset.select(QueryExecDataset.java:164) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.exec.QueryExecutionAdapter.execSelect(QueryExecutionAdapter.java:115) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.fuseki.servlets.SPARQLQueryProcessor.executeQuery(SPARQLQueryProcessor.java:374) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.fuseki.servlets.SPARQLQueryProcessor.execute(SPARQLQueryProcessor.java:279) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.fuseki.servlets.SPARQLQueryProcessor.executeWithParameter(SPARQLQueryProcessor.java:224) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.fuseki.servlets.SPARQLQueryProcessor.execute(SPARQLQueryProcessor.java:209) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.fuseki.servlets.ActionService.executeLifecycle(ActionService.java:58) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.fuseki.servlets.SPARQLQueryProcessor.execPost(SPARQLQueryProcessor.java:84) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.fuseki.servlets.ActionProcessor.process(ActionProcessor.java:34) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.fuseki.servlets.ActionBase.process(ActionBase.java:54) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.fuseki.servlets.ActionExecLib.execActionSub(ActionExecLib.java:127) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.fuseki.servlets.ActionExecLib.execAction(ActionExecLib.java:101) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.fuseki.server.Dispatcher.dispatchAction(Dispatcher.java:231) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.fuseki.server.Dispatcher.process(Dispatcher.java:221) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.fuseki.server.Dispatcher.dispatch(Dispatcher.java:148) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.fuseki.servlets.FusekiFilter.doFilter(FusekiFilter.java:49) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:458) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:373) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:370) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:334) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:288) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:598) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1570) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1384) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1543) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1306) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:822) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.server.Server.handle(Server.java:563) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.server.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1598) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:753) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:501) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:287) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:199) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149) [fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at java.base/java.lang.Thread.run(Thread.java:829) [?:?]
Jan 10 10:19:10 server fuseki-server[98423]: Caused by: org.apache.jena.sparql.engine.http.QueryExceptionHTTP: Server Error
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.http.QueryExceptionHTTP.rewrap(QueryExceptionHTTP.java:49) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.exec.http.QueryExecHTTP.executeQuery(QueryExecHTTP.java:551) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.exec.http.QueryExecHTTP.execRowSet(QueryExecHTTP.java:172) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.exec.http.QueryExecHTTP.select(QueryExecHTTP.java:163) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.exec.http.Service.exec(Service.java:242) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.service.single.ServiceExecutorHttp.createExecution(ServiceExecutorHttp.java:45) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.service.single.ChainingServiceExecutorWrapper.createExecution(ChainingServiceExecutorWrapper.java:51) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.service.single.ServiceExecutorOverRegistry.createExecution(ServiceExecutorOverRegistry.java:65) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.service.enhancer.init.ServiceEnhancerInit.lambda$registerServiceExecutorSelf$0(ServiceEnhancerInit.java:150) ~[jena-serviceenhancer-4.10.0.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.service.single.ServiceExecutorOverRegistry.createExecution(ServiceExecutorOverRegistry.java:65) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.service.bulk.ServiceExecutorBulkToSingle$1.nextStage(ServiceExecutorBulkToSingle.java:48) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.makeNextStage(QueryIterRepeatApply.java:100) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:60) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:116) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:38) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.service.enhancer.impl.util.QueryIterDefer.hasNextBinding(QueryIterDefer.java:50) ~[jena-serviceenhancer-4.10.0.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:116) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.atlas.iterator.Iter$IterMap.hasNext(Iter.java:422) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.service.enhancer.impl.util.PeekIteratorLazy.computeNext(PeekIteratorLazy.java:48) ~[jena-serviceenhancer-4.10.0.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:145) ~[jena-serviceenhancer-4.10.0.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:140) ~[jena-serviceenhancer-4.10.0.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.service.enhancer.impl.util.IteratorUtils$1.computeNext(IteratorUtils.java:72) ~[jena-serviceenhancer-4.10.0.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.service.enhancer.impl.util.IteratorUtils$1.computeNext(IteratorUtils.java:58) ~[jena-serviceenhancer-4.10.0.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:145) ~[jena-serviceenhancer-4.10.0.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:140) ~[jena-serviceenhancer-4.10.0.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.service.enhancer.impl.QueryIterWrapperCache.setupForNextLhsBinding(QueryIterWrapperCache.java:133) ~[jena-serviceenhancer-4.10.0.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.service.enhancer.impl.QueryIterWrapperCache.moveToNext(QueryIterWrapperCache.java:106) ~[jena-serviceenhancer-4.10.0.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.service.enhancer.impl.QueryIterWrapperCache.moveToNext(QueryIterWrapperCache.java:45) ~[jena-serviceenhancer-4.10.0.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.atlas.iterator.IteratorSlotted.hasNext(IteratorSlotted.java:63) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:38) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:116) ~[fuseki-server.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.service.enhancer.impl.IteratorFactoryWithBuffer$SubIteratorImpl.prefetch(IteratorFactoryWithBuffer.java:181) ~[jena-serviceenhancer-4.10.0.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         at org.apache.jena.sparql.service.enhancer.impl.util.SinglePrefetchIterator._prefetch(SinglePrefetchIterator.java:64) ~[jena-serviceenhancer-4.10.0.jar:4.10.0]
Jan 10 10:19:10 server fuseki-server[98423]:         ... 118 more



fetching-data-failed

from jena.

afs avatar afs commented on June 14, 2024

Good idea.

If the Jena cache abstraction works, the choice can be abstracted away.

But the abstraction is basic functionality only without any build control except size.

One reason for switching is to reduce the exposure to Guava which is a big library and Jena only uses some parts of it. When Jena is used as a library, there is a risk of version conflicts with the rest of the application choices. Shading solved that but it means application have two copies of guava (or more - shading the version to get isolation is common).

from jena.

Aklakan avatar Aklakan commented on June 14, 2024

Switching the cache to caffeine is doable, but unfortunately for my last post I had only searched for 'guava'.

I noticed my code also relies on com.google.common.collect.{Range, RangeMap, RangeSet, etc} for managing the ranges of cached data. This part would be too much effort to replace - at least in the short run.

One way to build the jar-bundle with maven only:

# Fetch the serviceenhancer pom from maven central
mvn dependency:copy -D'artifact=org.apache.jena:jena-serviceenhancer:4.10.0:pom' \
  -Dmdep.stripVersion=true -D'outputDirectory=.'

# Build using the 'bundle' profile
mvn -f jena-serviceenhancer.pom -Pbundle package
  • Maybe for now its best to just update the documentation that a custom build step using maven is needed.
  • It would be possible to document specifically that guava is needed in addition (possibly adding download links) - but then every dependency change might require a documentation update - bad.
  • Might packaging as a Fuseki module be an option that makes things easier? So far we are just using our own fork (which mainly adds a method to recreate the spatial index on-demand) - it seems there are no "official" jena fuseki modules published as part of the jena release(?).

from jena.

afs avatar afs commented on June 14, 2024

Completed by #2271, #2288 and apache/jena-site#182

from jena.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.