You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Mikael Pesonen <mi...@lingsoft.fi> on 2019/06/11 13:34:47 UTC

java.lang.NullPointerException

Hi,

following query causes exception every time it's executed. Exactly same 
query has worked before, but can't say which Jena version it was.

  [2019-06-11 13:02:51] Fuseki     WARN  [24] RC = 500 : null
java.lang.NullPointerException
         at 
org.apache.jena.fuseki.servlets.SPARQL_Query.execute(SPARQL_Query.java:301)
         at 
org.apache.jena.fuseki.servlets.SPARQL_Query.executeBody(SPARQL_Query.java:250)
         at 
org.apache.jena.fuseki.servlets.SPARQL_Query.perform(SPARQL_Query.java:230)
         at 
org.apache.jena.fuseki.servlets.ActionService.executeLifecycle(ActionService.java:266)
         at 
org.apache.jena.fuseki.servlets.ActionService.execCommonWorker(ActionService.java:155)
         at 
org.apache.jena.fuseki.servlets.ActionBase.doCommon(ActionBase.java:74)
         at 
org.apache.jena.fuseki.servlets.FusekiFilter.doFilter(FusekiFilter.java:73)
         at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
         at 
org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
         at 
org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
         at 
org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
         at 
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
         at 
org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
         at 
org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
         at 
org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
         at 
org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
         at 
org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
         at 
org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
         at 
org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
         at 
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
         at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
         at 
org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:285)
         at 
org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:248)
         at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
         at 
org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:285)
         at 
org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:248)
         at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634)
         at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
         at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
         at 
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
         at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
         at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
         at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
         at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
         at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
         at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
         at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
         at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
         at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
         at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
         at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
         at 
org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:690)
         at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
         at org.eclipse.jetty.server.Server.handle(Server.java:503)
         at 
org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
         at 
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
         at 
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
         at 
org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
         at 
org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
         at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
         at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
         at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
         at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
         at 
org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
         at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
         at 
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
         at java.lang.Thread.run(Thread.java:748)
[2019-06-11 13:02:51] Fuseki     INFO  [24] 500 Server Error (1.070 s)



SELECT DISTINCT ?p ?label ?range   ?property_type
(GROUP_CONCAT(DISTINCT ?comment_g; separator=" ") as ?comment)
WHERE  {
     GRAPH <http://resource.lingsoft.fi/rdf/schema_meta>
     {
         VALUES ?domain_property { rdfs:domain schema:domainIncludes }
         VALUES ?general_domain { rdfs:Resource owl:Thing schema:Thing }
         VALUES ?property_type { rdf:Property owl:DatatypeProperty 
owl:ObjectProperty owl:AnnotationProperty }
         VALUES ?class { <http://purl.org/dc/terms/Agent> 
<http://xmlns.com/foaf/0.1/Agent> }
         ?class rdfs:subClassOf* ?top_class .
         { ?p ?domain_property ?top_class } UNION { ?p 
rdfs:subPropertyOf* ?p2 . ?p2 ?domain_property ?top_class }

         UNION { ?p ?domain_property ?general_domain }

         UNION { ?p a ?property_type FILTER ( NOT EXISTS { ?p 
rdfs:domain ?d } && NOT EXISTS { ?p schema:domainIncludes ?d } && NOT 
EXISTS { ?p rdfs:subPropertyOf ?p2 . ?p2 rdfs:domain ?d FILTER (?d != 
rdfs:Resource && ?d != owl:Thing) } ) }
         OPTIONAL { ?p rdfs:subPropertyOf* ?p2 . { ?p2 
schema:rangeIncludes ?range } UNION { ?p2 rdfs:range ?range } }
         OPTIONAL { ?p rdfs:label ?label 
FILTER(LANGMATCHES(LANG(?label), "en")) }
         OPTIONAL { ?p rdfs:label ?label FILTER(LANG(?label) = "") }
         OPTIONAL { ?p rdfs:label ?label }
         OPTIONAL { ?p rdfs:comment ?comment_g 
FILTER(LANGMATCHES(LANG(?comment_g), "en")) }
         OPTIONAL { ?p rdfs:comment ?comment_g FILTER(LANG(?comment_g) = 
"") }
         OPTIONAL { ?p rdfs:comment ?comment_g }
         OPTIONAL { ?p skos:definition ?comment_g 
FILTER(LANGMATCHES(LANG(?comment_g), "en")) }
         OPTIONAL { ?p skos:definition ?comment_g 
FILTER(LANG(?comment_g) = "") }
         OPTIONAL { ?p skos:definition ?comment_g }

         FILTER ( NOT EXISTS { ?p schema:supersededBy ?sp } && NOT 
EXISTS { ?p <http://www.w3.org/2003/06/sw-vocab-status/ns#term_status> 
"archaic" } && NOT EXISTS { ?p owl:deprecated "true"^^xsd:boolean } )
  }  }
  GROUP BY ?p ?label ?range ?property_type
  ORDER BY ASC(?label)



Jena Fuseki version 3.11

  /usr/bin/java 
-Dlog4j.configuration=file:/home/text/tools/apache-jena-fuseki-3.11.0/log4j.properties 
-Xmx5600M -jar fuseki-server.jar --update --port 3030 --config=config.ttl


config.ttl:

@prefix :<http://localhost/jena_example/#>  .
@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 ja:<http://jena.hpl.hp.com/2005/11/Assembler#>  .
@prefix text:<http://jena.apache.org/text#>  .
@prefix skos:<http://www.w3.org/2004/02/skos/core#>
@prefix fuseki:<http://jena.apache.org/fuseki#>  .
@prefix lsrm:<https://resource.lingsoft.fi/ns/resource_meta#> .

[] rdf:type fuseki:Server ;
    ja:context [ ja:cxtName "arq:queryTimeout" ;  ja:cxtValue "1000" ] ;
    .

## Example of a TDB dataset and text index
## Initialize TDB
[] ja:loadClass "org.apache.jena.tdb.TDB" .
tdb:DatasetTDB  rdfs:subClassOf  ja:RDFDataset .
tdb:GraphTDB    rdfs:subClassOf  ja:Model .

## Initialize text query
[] ja:loadClass       "org.apache.jena.query.text.TextQuery" .
# A TextDataset is a regular dataset with a text index.
text:TextDataset      rdfs:subClassOf   ja:RDFDataset .
# Lucene index
text:TextIndexLucene  rdfs:subClassOf   text:TextIndex .


## ---------------------------------------------------------------


:text_dataset rdf:type     text:TextDataset ;
      text:dataset   :my_dataset ;
      text:index     <#indexLucene> ;
      .

# A TDB dataset used for RDF storage
:my_dataset rdf:type      tdb:DatasetTDB ;
      tdb:location "/home/text/tools/jena_data/" ;
      ja:context [ ja:cxtName "arq:queryTimeout" ; ja:cxtValue "1000" ] ;

#    tdb:unionDefaultGraph true ; # Optional
      .

# Text index description
<#indexLucene> a text:TextIndexLucene ;
      text:directory <file:/home/text/tools/jena_text_index/> ;
      text:entityMap <#entMap> ;
      text:storeValues true ;
      text:analyzer [ a text:StandardAnalyzer ] ;
# these mess up language search. why?
#     text:queryAnalyzer [ a text:KeywordAnalyzer ] ;
#     text:queryParser text:AnalyzingQueryParser ;
      text:multilingualSupport true ;
   .

<#entMap> a text:EntityMap ;
      text:defaultField     "prefLabel" ;
      text:entityField      "uri" ;
      text:uidField         "uid" ;
      text:langField        "lang" ;
      text:graphField       "graph" ;
      text:map (
           [ text:field "prefLabel" ; text:predicate skos:prefLabel ]
           [ text:field "altLabel"  ; text:predicate skos:altLabel ]
           [ text:field "content"  ; text:predicate lsrm:content ]
           ) .

<#service> rdf:type fuseki:Service ;
      fuseki:name                     "/ds" ;   # http://host:port/ds-ro
      fuseki:serviceQuery             "query" ;    # SPARQL query service
      fuseki:serviceQuery             "sparql" ;   # SPARQL query service
      fuseki:serviceUpdate            "update" ;   # SPARQL update service
      fuseki:serviceUpload            "upload" ;   # Non-SPARQL upload 
service
      fuseki:serviceReadWriteGraphStore "data" ;     # SPARQL Graph 
store protocol (read and write)
      fuseki:dataset           :text_dataset ;
      .

-- 
Lingsoft - 30 years of Leading Language Management

www.lingsoft.fi

Speech Applications - Language Management - Translation - Reader's and Writer's Tools - Text Tools - E-books and M-books

Mikael Pesonen
System Engineer

e-mail: mikael.pesonen@lingsoft.fi
Tel. +358 2 279 3300

Time zone: GMT+2

Helsinki Office
Eteläranta 10
FI-00130 Helsinki
FINLAND

Turku Office
Kauppiaskatu 5 A
FI-20100 Turku
FINLAND


Re: java.lang.NullPointerException

Posted by Mikael Pesonen <mi...@lingsoft.fi>.
Timeouts don't work so looking for solution for that too.

So far other queries work, also ones taking more time than timeout, but 
this might be the most complex one.
And confirmed that this exception indeed occurs at timeout point.

On 13/06/2019 12:24, Andy Seaborne wrote:
> You have timeouts working otherwise ?
> (the previous email thread does not say)
>
> Do other queries work?
>
>     Andy
>
> On 13/06/2019 10:11, Mikael Pesonen wrote:
>>
>> Using regular dataset instead of textdataset didn't help, same 
>> exception occurs.
>>
>> :text_dataset rdf:type     text:TextDataset ;
>>       text:dataset   :my_dataset ;
>>       text:index     <#indexLucene> ;
>>       .
>>
>> # A TDB dataset used for RDF storage
>> :my_dataset rdf:type      tdb:DatasetTDB ;
>>       tdb:location "/home/text/tools/jena_data/" ;
>>       ja:context [ ja:cxtName "arq:queryTimeout" ; ja:cxtValue "1000" 
>> ] ;
>>
>> #    tdb:unionDefaultGraph true ; # Optional
>>       .
>>
>> <#service> rdf:type fuseki:Service ;
>>       fuseki:name                     "/ds" ;   # http://host:port/ds-ro
>>       fuseki:serviceQuery             "query" ;    # SPARQL query 
>> service
>>       fuseki:serviceQuery             "sparql" ;   # SPARQL query 
>> service
>>       fuseki:serviceUpdate            "update" ;   # SPARQL update 
>> service
>>       fuseki:serviceUpload            "upload" ;   # Non-SPARQL 
>> upload service
>>       fuseki:serviceReadWriteGraphStore "data" ;     # SPARQL Graph 
>> store protocol (read and write)
>>       fuseki:dataset           :my_dataset; #:text_dataset ;
>>       .
>>
>>
>> On 12/06/2019 17:02, Andy Seaborne wrote:
>>> Does it work if the fuseki:dataset connects to the dataseet without 
>>> text index :my_dataset?
>>>
>>> On 12/06/2019 13:00, Mikael Pesonen wrote:
>>>>
>>>> Tested with smaller data and it works even when query takes 60+ 
>>>> seconds (with 1 second timeout in config). I can provide you with 
>>>> the whole data, it's just collection of public RDF schemas.
>>>>
>>>> On 12/06/2019 14:05, Andy Seaborne wrote:
>>>>> The exception is the query timeout counter.
>>>>>
>>>>> That worked for me when I tested the previous question.
>>>>>
>>>>> The setup is complex.
>>>>> Do you have complete, minimal example on a plain database? Or does 
>>>>> that work always?
>>>>>
>>>>>     Andy
>>>>>
>>>>>
>>>>> On 11/06/2019 14:34, Mikael Pesonen wrote:
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> following query causes exception every time it's executed. 
>>>>>> Exactly same query has worked before, but can't say which Jena 
>>>>>> version it was.
>>>>>>
>>>>>>   [2019-06-11 13:02:51] Fuseki     WARN  [24] RC = 500 : null
>>>>>> java.lang.NullPointerException
>>>>>>          at 
>>>>>> org.apache.jena.fuseki.servlets.SPARQL_Query.execute(SPARQL_Query.java:301) 
>>>>>>
>>>>>>          at 
>>>>>> org.apache.jena.fuseki.servlets.SPARQL_Query.executeBody(SPARQL_Query.java:250) 
>>>>>>
>>>>>>          at 
>>>>>> org.apache.jena.fuseki.servlets.SPARQL_Query.perform(SPARQL_Query.java:230) 
>>>>>>
>>>>>>          at 
>>>>>> org.apache.jena.fuseki.servlets.ActionService.executeLifecycle(ActionService.java:266) 
>>>>>>
>>>>>>          at 
>>>>>> org.apache.jena.fuseki.servlets.ActionService.execCommonWorker(ActionService.java:155) 
>>>>>>
>>>>>>          at 
>>>>>> org.apache.jena.fuseki.servlets.ActionBase.doCommon(ActionBase.java:74) 
>>>>>>
>>>>>>          at 
>>>>>> org.apache.jena.fuseki.servlets.FusekiFilter.doFilter(FusekiFilter.java:73) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) 
>>>>>>
>>>>>>          at 
>>>>>> org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) 
>>>>>>
>>>>>>          at 
>>>>>> org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) 
>>>>>>
>>>>>>          at 
>>>>>> org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) 
>>>>>>
>>>>>>          at 
>>>>>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) 
>>>>>>
>>>>>>          at 
>>>>>> org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) 
>>>>>>
>>>>>>          at 
>>>>>> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) 
>>>>>>
>>>>>>          at 
>>>>>> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) 
>>>>>>
>>>>>>          at 
>>>>>> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) 
>>>>>>
>>>>>>          at 
>>>>>> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) 
>>>>>>
>>>>>>          at 
>>>>>> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) 
>>>>>>
>>>>>>          at 
>>>>>> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) 
>>>>>>
>>>>>>          at 
>>>>>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) 
>>>>>>
>>>>>>          at 
>>>>>> org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:285) 
>>>>>>
>>>>>>          at 
>>>>>> org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:248) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) 
>>>>>>
>>>>>>          at 
>>>>>> org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:285) 
>>>>>>
>>>>>>          at 
>>>>>> org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:248) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:690) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 
>>>>>>
>>>>>>          at org.eclipse.jetty.server.Server.handle(Server.java:503)
>>>>>>          at 
>>>>>> org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
>>>>>>          at 
>>>>>> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>>>>>>          at 
>>>>>> org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
>>>>>>          at 
>>>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765) 
>>>>>>
>>>>>>          at 
>>>>>> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) 
>>>>>>
>>>>>>          at java.lang.Thread.run(Thread.java:748)
>>>>>> [2019-06-11 13:02:51] Fuseki     INFO  [24] 500 Server Error 
>>>>>> (1.070 s)
>>>>>>
>>>>>>
>>>>>>
>>>>>> SELECT DISTINCT ?p ?label ?range   ?property_type
>>>>>> (GROUP_CONCAT(DISTINCT ?comment_g; separator=" ") as ?comment)
>>>>>> WHERE  {
>>>>>>      GRAPH <http://resource.lingsoft.fi/rdf/schema_meta>
>>>>>>      {
>>>>>>          VALUES ?domain_property { rdfs:domain 
>>>>>> schema:domainIncludes }
>>>>>>          VALUES ?general_domain { rdfs:Resource owl:Thing 
>>>>>> schema:Thing }
>>>>>>          VALUES ?property_type { rdf:Property 
>>>>>> owl:DatatypeProperty owl:ObjectProperty owl:AnnotationProperty }
>>>>>>          VALUES ?class { <http://purl.org/dc/terms/Agent> 
>>>>>> <http://xmlns.com/foaf/0.1/Agent> }
>>>>>>          ?class rdfs:subClassOf* ?top_class .
>>>>>>          { ?p ?domain_property ?top_class } UNION { ?p 
>>>>>> rdfs:subPropertyOf* ?p2 . ?p2 ?domain_property ?top_class }
>>>>>>
>>>>>>          UNION { ?p ?domain_property ?general_domain }
>>>>>>
>>>>>>          UNION { ?p a ?property_type FILTER ( NOT EXISTS { ?p 
>>>>>> rdfs:domain ?d } && NOT EXISTS { ?p schema:domainIncludes ?d } && 
>>>>>> NOT EXISTS { ?p rdfs:subPropertyOf ?p2 . ?p2 rdfs:domain ?d 
>>>>>> FILTER (?d != rdfs:Resource && ?d != owl:Thing) } ) }
>>>>>>          OPTIONAL { ?p rdfs:subPropertyOf* ?p2 . { ?p2 
>>>>>> schema:rangeIncludes ?range } UNION { ?p2 rdfs:range ?range } }
>>>>>>          OPTIONAL { ?p rdfs:label ?label 
>>>>>> FILTER(LANGMATCHES(LANG(?label), "en")) }
>>>>>>          OPTIONAL { ?p rdfs:label ?label FILTER(LANG(?label) = "") }
>>>>>>          OPTIONAL { ?p rdfs:label ?label }
>>>>>>          OPTIONAL { ?p rdfs:comment ?comment_g 
>>>>>> FILTER(LANGMATCHES(LANG(?comment_g), "en")) }
>>>>>>          OPTIONAL { ?p rdfs:comment ?comment_g 
>>>>>> FILTER(LANG(?comment_g) = "") }
>>>>>>          OPTIONAL { ?p rdfs:comment ?comment_g }
>>>>>>          OPTIONAL { ?p skos:definition ?comment_g 
>>>>>> FILTER(LANGMATCHES(LANG(?comment_g), "en")) }
>>>>>>          OPTIONAL { ?p skos:definition ?comment_g 
>>>>>> FILTER(LANG(?comment_g) = "") }
>>>>>>          OPTIONAL { ?p skos:definition ?comment_g }
>>>>>>
>>>>>>          FILTER ( NOT EXISTS { ?p schema:supersededBy ?sp } && 
>>>>>> NOT EXISTS { ?p 
>>>>>> <http://www.w3.org/2003/06/sw-vocab-status/ns#term_status> 
>>>>>> "archaic" } && NOT EXISTS { ?p owl:deprecated "true"^^xsd:boolean 
>>>>>> } )
>>>>>>   }  }
>>>>>>   GROUP BY ?p ?label ?range ?property_type
>>>>>>   ORDER BY ASC(?label)
>>>>>>
>>>>>>
>>>>>>
>>>>>> Jena Fuseki version 3.11
>>>>>>
>>>>>>   /usr/bin/java 
>>>>>> -Dlog4j.configuration=file:/home/text/tools/apache-jena-fuseki-3.11.0/log4j.properties 
>>>>>> -Xmx5600M -jar fuseki-server.jar --update --port 3030 
>>>>>> --config=config.ttl
>>>>>>
>>>>>>
>>>>>> config.ttl:
>>>>>>
>>>>>> @prefix :<http://localhost/jena_example/#>  .
>>>>>> @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 ja:<http://jena.hpl.hp.com/2005/11/Assembler#>  .
>>>>>> @prefix text:<http://jena.apache.org/text#>  .
>>>>>> @prefix skos:<http://www.w3.org/2004/02/skos/core#>
>>>>>> @prefix fuseki:<http://jena.apache.org/fuseki#>  .
>>>>>> @prefix lsrm:<https://resource.lingsoft.fi/ns/resource_meta#> .
>>>>>>
>>>>>> [] rdf:type fuseki:Server ;
>>>>>>     ja:context [ ja:cxtName "arq:queryTimeout" ; ja:cxtValue 
>>>>>> "1000" ] ;
>>>>>>     .
>>>>>>
>>>>>> ## Example of a TDB dataset and text index
>>>>>> ## Initialize TDB
>>>>>> [] ja:loadClass "org.apache.jena.tdb.TDB" .
>>>>>> tdb:DatasetTDB  rdfs:subClassOf  ja:RDFDataset .
>>>>>> tdb:GraphTDB    rdfs:subClassOf  ja:Model .
>>>>>>
>>>>>> ## Initialize text query
>>>>>> [] ja:loadClass "org.apache.jena.query.text.TextQuery" .
>>>>>> # A TextDataset is a regular dataset with a text index.
>>>>>> text:TextDataset      rdfs:subClassOf   ja:RDFDataset .
>>>>>> # Lucene index
>>>>>> text:TextIndexLucene  rdfs:subClassOf   text:TextIndex .
>>>>>>
>>>>>>
>>>>>> ## ---------------------------------------------------------------
>>>>>>
>>>>>>
>>>>>> :text_dataset rdf:type     text:TextDataset ;
>>>>>>       text:dataset   :my_dataset ;
>>>>>>       text:index     <#indexLucene> ;
>>>>>>       .
>>>>>>
>>>>>> # A TDB dataset used for RDF storage
>>>>>> :my_dataset rdf:type      tdb:DatasetTDB ;
>>>>>>       tdb:location "/home/text/tools/jena_data/" ;
>>>>>>       ja:context [ ja:cxtName "arq:queryTimeout" ; ja:cxtValue 
>>>>>> "1000" ] ;
>>>>>>
>>>>>> #    tdb:unionDefaultGraph true ; # Optional
>>>>>>       .
>>>>>>
>>>>>> # Text index description
>>>>>> <#indexLucene> a text:TextIndexLucene ;
>>>>>>       text:directory <file:/home/text/tools/jena_text_index/> ;
>>>>>>       text:entityMap <#entMap> ;
>>>>>>       text:storeValues true ;
>>>>>>       text:analyzer [ a text:StandardAnalyzer ] ;
>>>>>> # these mess up language search. why?
>>>>>> #     text:queryAnalyzer [ a text:KeywordAnalyzer ] ;
>>>>>> #     text:queryParser text:AnalyzingQueryParser ;
>>>>>>       text:multilingualSupport true ;
>>>>>>    .
>>>>>>
>>>>>> <#entMap> a text:EntityMap ;
>>>>>>       text:defaultField     "prefLabel" ;
>>>>>>       text:entityField      "uri" ;
>>>>>>       text:uidField         "uid" ;
>>>>>>       text:langField        "lang" ;
>>>>>>       text:graphField       "graph" ;
>>>>>>       text:map (
>>>>>>            [ text:field "prefLabel" ; text:predicate 
>>>>>> skos:prefLabel ]
>>>>>>            [ text:field "altLabel"  ; text:predicate skos:altLabel ]
>>>>>>            [ text:field "content"  ; text:predicate lsrm:content ]
>>>>>>            ) .
>>>>>>
>>>>>> <#service> rdf:type fuseki:Service ;
>>>>>>       fuseki:name                     "/ds" ;   # 
>>>>>> http://host:port/ds-ro
>>>>>>       fuseki:serviceQuery             "query" ;    # SPARQL query 
>>>>>> service
>>>>>>       fuseki:serviceQuery             "sparql" ;   # SPARQL query 
>>>>>> service
>>>>>>       fuseki:serviceUpdate            "update" ;   # SPARQL 
>>>>>> update service
>>>>>>       fuseki:serviceUpload            "upload" ;   # Non-SPARQL 
>>>>>> upload service
>>>>>>       fuseki:serviceReadWriteGraphStore "data" ;     # SPARQL 
>>>>>> Graph store protocol (read and write)
>>>>>>       fuseki:dataset           :text_dataset ;
>>>>>>       .
>>>>>>
>>>>
>>

-- 
Lingsoft - 30 years of Leading Language Management

www.lingsoft.fi

Speech Applications - Language Management - Translation - Reader's and Writer's Tools - Text Tools - E-books and M-books

Mikael Pesonen
System Engineer

e-mail: mikael.pesonen@lingsoft.fi
Tel. +358 2 279 3300

Time zone: GMT+2

Helsinki Office
Eteläranta 10
FI-00130 Helsinki
FINLAND

Turku Office
Kauppiaskatu 5 A
FI-20100 Turku
FINLAND


Re: java.lang.NullPointerException

Posted by Andy Seaborne <an...@apache.org>.
You have timeouts working otherwise ?
(the previous email thread does not say)

Do other queries work?

     Andy

On 13/06/2019 10:11, Mikael Pesonen wrote:
> 
> Using regular dataset instead of textdataset didn't help, same exception 
> occurs.
> 
> :text_dataset rdf:type     text:TextDataset ;
>       text:dataset   :my_dataset ;
>       text:index     <#indexLucene> ;
>       .
> 
> # A TDB dataset used for RDF storage
> :my_dataset rdf:type      tdb:DatasetTDB ;
>       tdb:location "/home/text/tools/jena_data/" ;
>       ja:context [ ja:cxtName "arq:queryTimeout" ; ja:cxtValue "1000" ] ;
> 
> #    tdb:unionDefaultGraph true ; # Optional
>       .
> 
> <#service> rdf:type fuseki:Service ;
>       fuseki:name                     "/ds" ;   # http://host:port/ds-ro
>       fuseki:serviceQuery             "query" ;    # SPARQL query service
>       fuseki:serviceQuery             "sparql" ;   # SPARQL query service
>       fuseki:serviceUpdate            "update" ;   # SPARQL update service
>       fuseki:serviceUpload            "upload" ;   # Non-SPARQL upload 
> service
>       fuseki:serviceReadWriteGraphStore "data" ;     # SPARQL Graph 
> store protocol (read and write)
>       fuseki:dataset           :my_dataset; #:text_dataset ;
>       .
> 
> 
> On 12/06/2019 17:02, Andy Seaborne wrote:
>> Does it work if the fuseki:dataset connects to the dataseet without 
>> text index :my_dataset?
>>
>> On 12/06/2019 13:00, Mikael Pesonen wrote:
>>>
>>> Tested with smaller data and it works even when query takes 60+ 
>>> seconds (with 1 second timeout in config). I can provide you with the 
>>> whole data, it's just collection of public RDF schemas.
>>>
>>> On 12/06/2019 14:05, Andy Seaborne wrote:
>>>> The exception is the query timeout counter.
>>>>
>>>> That worked for me when I tested the previous question.
>>>>
>>>> The setup is complex.
>>>> Do you have complete, minimal example on a plain database? Or does 
>>>> that work always?
>>>>
>>>>     Andy
>>>>
>>>>
>>>> On 11/06/2019 14:34, Mikael Pesonen wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> following query causes exception every time it's executed. Exactly 
>>>>> same query has worked before, but can't say which Jena version it was.
>>>>>
>>>>>   [2019-06-11 13:02:51] Fuseki     WARN  [24] RC = 500 : null
>>>>> java.lang.NullPointerException
>>>>>          at 
>>>>> org.apache.jena.fuseki.servlets.SPARQL_Query.execute(SPARQL_Query.java:301) 
>>>>>
>>>>>          at 
>>>>> org.apache.jena.fuseki.servlets.SPARQL_Query.executeBody(SPARQL_Query.java:250) 
>>>>>
>>>>>          at 
>>>>> org.apache.jena.fuseki.servlets.SPARQL_Query.perform(SPARQL_Query.java:230) 
>>>>>
>>>>>          at 
>>>>> org.apache.jena.fuseki.servlets.ActionService.executeLifecycle(ActionService.java:266) 
>>>>>
>>>>>          at 
>>>>> org.apache.jena.fuseki.servlets.ActionService.execCommonWorker(ActionService.java:155) 
>>>>>
>>>>>          at 
>>>>> org.apache.jena.fuseki.servlets.ActionBase.doCommon(ActionBase.java:74) 
>>>>>
>>>>>          at 
>>>>> org.apache.jena.fuseki.servlets.FusekiFilter.doFilter(FusekiFilter.java:73) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) 
>>>>>
>>>>>          at 
>>>>> org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) 
>>>>>
>>>>>          at 
>>>>> org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) 
>>>>>
>>>>>          at 
>>>>> org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) 
>>>>>
>>>>>          at 
>>>>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) 
>>>>>
>>>>>          at 
>>>>> org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) 
>>>>>
>>>>>          at 
>>>>> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) 
>>>>>
>>>>>          at 
>>>>> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) 
>>>>>
>>>>>          at 
>>>>> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) 
>>>>>
>>>>>          at 
>>>>> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) 
>>>>>
>>>>>          at 
>>>>> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) 
>>>>>
>>>>>          at 
>>>>> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) 
>>>>>
>>>>>          at 
>>>>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) 
>>>>>
>>>>>          at 
>>>>> org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:285) 
>>>>>
>>>>>          at 
>>>>> org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:248) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) 
>>>>>
>>>>>          at 
>>>>> org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:285) 
>>>>>
>>>>>          at 
>>>>> org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:248) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:690) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 
>>>>>
>>>>>          at org.eclipse.jetty.server.Server.handle(Server.java:503)
>>>>>          at 
>>>>> org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
>>>>>          at 
>>>>> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>>>>>          at 
>>>>> org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
>>>>>          at 
>>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765) 
>>>>>
>>>>>          at 
>>>>> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) 
>>>>>
>>>>>          at java.lang.Thread.run(Thread.java:748)
>>>>> [2019-06-11 13:02:51] Fuseki     INFO  [24] 500 Server Error (1.070 s)
>>>>>
>>>>>
>>>>>
>>>>> SELECT DISTINCT ?p ?label ?range   ?property_type
>>>>> (GROUP_CONCAT(DISTINCT ?comment_g; separator=" ") as ?comment)
>>>>> WHERE  {
>>>>>      GRAPH <http://resource.lingsoft.fi/rdf/schema_meta>
>>>>>      {
>>>>>          VALUES ?domain_property { rdfs:domain schema:domainIncludes }
>>>>>          VALUES ?general_domain { rdfs:Resource owl:Thing 
>>>>> schema:Thing }
>>>>>          VALUES ?property_type { rdf:Property owl:DatatypeProperty 
>>>>> owl:ObjectProperty owl:AnnotationProperty }
>>>>>          VALUES ?class { <http://purl.org/dc/terms/Agent> 
>>>>> <http://xmlns.com/foaf/0.1/Agent> }
>>>>>          ?class rdfs:subClassOf* ?top_class .
>>>>>          { ?p ?domain_property ?top_class } UNION { ?p 
>>>>> rdfs:subPropertyOf* ?p2 . ?p2 ?domain_property ?top_class }
>>>>>
>>>>>          UNION { ?p ?domain_property ?general_domain }
>>>>>
>>>>>          UNION { ?p a ?property_type FILTER ( NOT EXISTS { ?p 
>>>>> rdfs:domain ?d } && NOT EXISTS { ?p schema:domainIncludes ?d } && 
>>>>> NOT EXISTS { ?p rdfs:subPropertyOf ?p2 . ?p2 rdfs:domain ?d FILTER 
>>>>> (?d != rdfs:Resource && ?d != owl:Thing) } ) }
>>>>>          OPTIONAL { ?p rdfs:subPropertyOf* ?p2 . { ?p2 
>>>>> schema:rangeIncludes ?range } UNION { ?p2 rdfs:range ?range } }
>>>>>          OPTIONAL { ?p rdfs:label ?label 
>>>>> FILTER(LANGMATCHES(LANG(?label), "en")) }
>>>>>          OPTIONAL { ?p rdfs:label ?label FILTER(LANG(?label) = "") }
>>>>>          OPTIONAL { ?p rdfs:label ?label }
>>>>>          OPTIONAL { ?p rdfs:comment ?comment_g 
>>>>> FILTER(LANGMATCHES(LANG(?comment_g), "en")) }
>>>>>          OPTIONAL { ?p rdfs:comment ?comment_g 
>>>>> FILTER(LANG(?comment_g) = "") }
>>>>>          OPTIONAL { ?p rdfs:comment ?comment_g }
>>>>>          OPTIONAL { ?p skos:definition ?comment_g 
>>>>> FILTER(LANGMATCHES(LANG(?comment_g), "en")) }
>>>>>          OPTIONAL { ?p skos:definition ?comment_g 
>>>>> FILTER(LANG(?comment_g) = "") }
>>>>>          OPTIONAL { ?p skos:definition ?comment_g }
>>>>>
>>>>>          FILTER ( NOT EXISTS { ?p schema:supersededBy ?sp } && NOT 
>>>>> EXISTS { ?p 
>>>>> <http://www.w3.org/2003/06/sw-vocab-status/ns#term_status> 
>>>>> "archaic" } && NOT EXISTS { ?p owl:deprecated "true"^^xsd:boolean } )
>>>>>   }  }
>>>>>   GROUP BY ?p ?label ?range ?property_type
>>>>>   ORDER BY ASC(?label)
>>>>>
>>>>>
>>>>>
>>>>> Jena Fuseki version 3.11
>>>>>
>>>>>   /usr/bin/java 
>>>>> -Dlog4j.configuration=file:/home/text/tools/apache-jena-fuseki-3.11.0/log4j.properties 
>>>>> -Xmx5600M -jar fuseki-server.jar --update --port 3030 
>>>>> --config=config.ttl
>>>>>
>>>>>
>>>>> config.ttl:
>>>>>
>>>>> @prefix :<http://localhost/jena_example/#>  .
>>>>> @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 ja:<http://jena.hpl.hp.com/2005/11/Assembler#>  .
>>>>> @prefix text:<http://jena.apache.org/text#>  .
>>>>> @prefix skos:<http://www.w3.org/2004/02/skos/core#>
>>>>> @prefix fuseki:<http://jena.apache.org/fuseki#>  .
>>>>> @prefix lsrm:<https://resource.lingsoft.fi/ns/resource_meta#> .
>>>>>
>>>>> [] rdf:type fuseki:Server ;
>>>>>     ja:context [ ja:cxtName "arq:queryTimeout" ; ja:cxtValue "1000" 
>>>>> ] ;
>>>>>     .
>>>>>
>>>>> ## Example of a TDB dataset and text index
>>>>> ## Initialize TDB
>>>>> [] ja:loadClass "org.apache.jena.tdb.TDB" .
>>>>> tdb:DatasetTDB  rdfs:subClassOf  ja:RDFDataset .
>>>>> tdb:GraphTDB    rdfs:subClassOf  ja:Model .
>>>>>
>>>>> ## Initialize text query
>>>>> [] ja:loadClass       "org.apache.jena.query.text.TextQuery" .
>>>>> # A TextDataset is a regular dataset with a text index.
>>>>> text:TextDataset      rdfs:subClassOf   ja:RDFDataset .
>>>>> # Lucene index
>>>>> text:TextIndexLucene  rdfs:subClassOf   text:TextIndex .
>>>>>
>>>>>
>>>>> ## ---------------------------------------------------------------
>>>>>
>>>>>
>>>>> :text_dataset rdf:type     text:TextDataset ;
>>>>>       text:dataset   :my_dataset ;
>>>>>       text:index     <#indexLucene> ;
>>>>>       .
>>>>>
>>>>> # A TDB dataset used for RDF storage
>>>>> :my_dataset rdf:type      tdb:DatasetTDB ;
>>>>>       tdb:location "/home/text/tools/jena_data/" ;
>>>>>       ja:context [ ja:cxtName "arq:queryTimeout" ; ja:cxtValue 
>>>>> "1000" ] ;
>>>>>
>>>>> #    tdb:unionDefaultGraph true ; # Optional
>>>>>       .
>>>>>
>>>>> # Text index description
>>>>> <#indexLucene> a text:TextIndexLucene ;
>>>>>       text:directory <file:/home/text/tools/jena_text_index/> ;
>>>>>       text:entityMap <#entMap> ;
>>>>>       text:storeValues true ;
>>>>>       text:analyzer [ a text:StandardAnalyzer ] ;
>>>>> # these mess up language search. why?
>>>>> #     text:queryAnalyzer [ a text:KeywordAnalyzer ] ;
>>>>> #     text:queryParser text:AnalyzingQueryParser ;
>>>>>       text:multilingualSupport true ;
>>>>>    .
>>>>>
>>>>> <#entMap> a text:EntityMap ;
>>>>>       text:defaultField     "prefLabel" ;
>>>>>       text:entityField      "uri" ;
>>>>>       text:uidField         "uid" ;
>>>>>       text:langField        "lang" ;
>>>>>       text:graphField       "graph" ;
>>>>>       text:map (
>>>>>            [ text:field "prefLabel" ; text:predicate skos:prefLabel ]
>>>>>            [ text:field "altLabel"  ; text:predicate skos:altLabel ]
>>>>>            [ text:field "content"  ; text:predicate lsrm:content ]
>>>>>            ) .
>>>>>
>>>>> <#service> rdf:type fuseki:Service ;
>>>>>       fuseki:name                     "/ds" ;   # 
>>>>> http://host:port/ds-ro
>>>>>       fuseki:serviceQuery             "query" ;    # SPARQL query 
>>>>> service
>>>>>       fuseki:serviceQuery             "sparql" ;   # SPARQL query 
>>>>> service
>>>>>       fuseki:serviceUpdate            "update" ;   # SPARQL update 
>>>>> service
>>>>>       fuseki:serviceUpload            "upload" ;   # Non-SPARQL 
>>>>> upload service
>>>>>       fuseki:serviceReadWriteGraphStore "data" ;     # SPARQL Graph 
>>>>> store protocol (read and write)
>>>>>       fuseki:dataset           :text_dataset ;
>>>>>       .
>>>>>
>>>
> 

Re: java.lang.NullPointerException

Posted by Mikael Pesonen <mi...@lingsoft.fi>.
Using regular dataset instead of textdataset didn't help, same exception 
occurs.

:text_dataset rdf:type     text:TextDataset ;
      text:dataset   :my_dataset ;
      text:index     <#indexLucene> ;
      .

# A TDB dataset used for RDF storage
:my_dataset rdf:type      tdb:DatasetTDB ;
      tdb:location "/home/text/tools/jena_data/" ;
      ja:context [ ja:cxtName "arq:queryTimeout" ; ja:cxtValue "1000" ] ;

#    tdb:unionDefaultGraph true ; # Optional
      .

<#service> rdf:type fuseki:Service ;
      fuseki:name                     "/ds" ;   # http://host:port/ds-ro
      fuseki:serviceQuery             "query" ;    # SPARQL query service
      fuseki:serviceQuery             "sparql" ;   # SPARQL query service
      fuseki:serviceUpdate            "update" ;   # SPARQL update service
      fuseki:serviceUpload            "upload" ;   # Non-SPARQL upload 
service
      fuseki:serviceReadWriteGraphStore "data" ;     # SPARQL Graph 
store protocol (read and write)
      fuseki:dataset           :my_dataset; #:text_dataset ;
      .


On 12/06/2019 17:02, Andy Seaborne wrote:
> Does it work if the fuseki:dataset connects to the dataseet without 
> text index :my_dataset?
>
> On 12/06/2019 13:00, Mikael Pesonen wrote:
>>
>> Tested with smaller data and it works even when query takes 60+ 
>> seconds (with 1 second timeout in config). I can provide you with the 
>> whole data, it's just collection of public RDF schemas.
>>
>> On 12/06/2019 14:05, Andy Seaborne wrote:
>>> The exception is the query timeout counter.
>>>
>>> That worked for me when I tested the previous question.
>>>
>>> The setup is complex.
>>> Do you have complete, minimal example on a plain database? Or does 
>>> that work always?
>>>
>>>     Andy
>>>
>>>
>>> On 11/06/2019 14:34, Mikael Pesonen wrote:
>>>>
>>>> Hi,
>>>>
>>>> following query causes exception every time it's executed. Exactly 
>>>> same query has worked before, but can't say which Jena version it was.
>>>>
>>>>   [2019-06-11 13:02:51] Fuseki     WARN  [24] RC = 500 : null
>>>> java.lang.NullPointerException
>>>>          at 
>>>> org.apache.jena.fuseki.servlets.SPARQL_Query.execute(SPARQL_Query.java:301) 
>>>>
>>>>          at 
>>>> org.apache.jena.fuseki.servlets.SPARQL_Query.executeBody(SPARQL_Query.java:250) 
>>>>
>>>>          at 
>>>> org.apache.jena.fuseki.servlets.SPARQL_Query.perform(SPARQL_Query.java:230) 
>>>>
>>>>          at 
>>>> org.apache.jena.fuseki.servlets.ActionService.executeLifecycle(ActionService.java:266) 
>>>>
>>>>          at 
>>>> org.apache.jena.fuseki.servlets.ActionService.execCommonWorker(ActionService.java:155) 
>>>>
>>>>          at 
>>>> org.apache.jena.fuseki.servlets.ActionBase.doCommon(ActionBase.java:74) 
>>>>
>>>>          at 
>>>> org.apache.jena.fuseki.servlets.FusekiFilter.doFilter(FusekiFilter.java:73) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) 
>>>>
>>>>          at 
>>>> org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) 
>>>>
>>>>          at 
>>>> org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) 
>>>>
>>>>          at 
>>>> org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) 
>>>>
>>>>          at 
>>>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) 
>>>>
>>>>          at 
>>>> org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) 
>>>>
>>>>          at 
>>>> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) 
>>>>
>>>>          at 
>>>> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) 
>>>>
>>>>          at 
>>>> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) 
>>>>
>>>>          at 
>>>> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) 
>>>>
>>>>          at 
>>>> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) 
>>>>
>>>>          at 
>>>> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) 
>>>>
>>>>          at 
>>>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) 
>>>>
>>>>          at 
>>>> org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:285) 
>>>>
>>>>          at 
>>>> org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:248) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) 
>>>>
>>>>          at 
>>>> org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:285) 
>>>>
>>>>          at 
>>>> org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:248) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:690) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 
>>>>
>>>>          at org.eclipse.jetty.server.Server.handle(Server.java:503)
>>>>          at 
>>>> org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
>>>>          at 
>>>> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>>>>          at 
>>>> org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
>>>>          at 
>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765) 
>>>>
>>>>          at 
>>>> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) 
>>>>
>>>>          at java.lang.Thread.run(Thread.java:748)
>>>> [2019-06-11 13:02:51] Fuseki     INFO  [24] 500 Server Error (1.070 s)
>>>>
>>>>
>>>>
>>>> SELECT DISTINCT ?p ?label ?range   ?property_type
>>>> (GROUP_CONCAT(DISTINCT ?comment_g; separator=" ") as ?comment)
>>>> WHERE  {
>>>>      GRAPH <http://resource.lingsoft.fi/rdf/schema_meta>
>>>>      {
>>>>          VALUES ?domain_property { rdfs:domain schema:domainIncludes }
>>>>          VALUES ?general_domain { rdfs:Resource owl:Thing 
>>>> schema:Thing }
>>>>          VALUES ?property_type { rdf:Property owl:DatatypeProperty 
>>>> owl:ObjectProperty owl:AnnotationProperty }
>>>>          VALUES ?class { <http://purl.org/dc/terms/Agent> 
>>>> <http://xmlns.com/foaf/0.1/Agent> }
>>>>          ?class rdfs:subClassOf* ?top_class .
>>>>          { ?p ?domain_property ?top_class } UNION { ?p 
>>>> rdfs:subPropertyOf* ?p2 . ?p2 ?domain_property ?top_class }
>>>>
>>>>          UNION { ?p ?domain_property ?general_domain }
>>>>
>>>>          UNION { ?p a ?property_type FILTER ( NOT EXISTS { ?p 
>>>> rdfs:domain ?d } && NOT EXISTS { ?p schema:domainIncludes ?d } && 
>>>> NOT EXISTS { ?p rdfs:subPropertyOf ?p2 . ?p2 rdfs:domain ?d FILTER 
>>>> (?d != rdfs:Resource && ?d != owl:Thing) } ) }
>>>>          OPTIONAL { ?p rdfs:subPropertyOf* ?p2 . { ?p2 
>>>> schema:rangeIncludes ?range } UNION { ?p2 rdfs:range ?range } }
>>>>          OPTIONAL { ?p rdfs:label ?label 
>>>> FILTER(LANGMATCHES(LANG(?label), "en")) }
>>>>          OPTIONAL { ?p rdfs:label ?label FILTER(LANG(?label) = "") }
>>>>          OPTIONAL { ?p rdfs:label ?label }
>>>>          OPTIONAL { ?p rdfs:comment ?comment_g 
>>>> FILTER(LANGMATCHES(LANG(?comment_g), "en")) }
>>>>          OPTIONAL { ?p rdfs:comment ?comment_g 
>>>> FILTER(LANG(?comment_g) = "") }
>>>>          OPTIONAL { ?p rdfs:comment ?comment_g }
>>>>          OPTIONAL { ?p skos:definition ?comment_g 
>>>> FILTER(LANGMATCHES(LANG(?comment_g), "en")) }
>>>>          OPTIONAL { ?p skos:definition ?comment_g 
>>>> FILTER(LANG(?comment_g) = "") }
>>>>          OPTIONAL { ?p skos:definition ?comment_g }
>>>>
>>>>          FILTER ( NOT EXISTS { ?p schema:supersededBy ?sp } && NOT 
>>>> EXISTS { ?p 
>>>> <http://www.w3.org/2003/06/sw-vocab-status/ns#term_status> 
>>>> "archaic" } && NOT EXISTS { ?p owl:deprecated "true"^^xsd:boolean } )
>>>>   }  }
>>>>   GROUP BY ?p ?label ?range ?property_type
>>>>   ORDER BY ASC(?label)
>>>>
>>>>
>>>>
>>>> Jena Fuseki version 3.11
>>>>
>>>>   /usr/bin/java 
>>>> -Dlog4j.configuration=file:/home/text/tools/apache-jena-fuseki-3.11.0/log4j.properties 
>>>> -Xmx5600M -jar fuseki-server.jar --update --port 3030 
>>>> --config=config.ttl
>>>>
>>>>
>>>> config.ttl:
>>>>
>>>> @prefix :<http://localhost/jena_example/#>  .
>>>> @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 ja:<http://jena.hpl.hp.com/2005/11/Assembler#>  .
>>>> @prefix text:<http://jena.apache.org/text#>  .
>>>> @prefix skos:<http://www.w3.org/2004/02/skos/core#>
>>>> @prefix fuseki:<http://jena.apache.org/fuseki#>  .
>>>> @prefix lsrm:<https://resource.lingsoft.fi/ns/resource_meta#> .
>>>>
>>>> [] rdf:type fuseki:Server ;
>>>>     ja:context [ ja:cxtName "arq:queryTimeout" ; ja:cxtValue "1000" 
>>>> ] ;
>>>>     .
>>>>
>>>> ## Example of a TDB dataset and text index
>>>> ## Initialize TDB
>>>> [] ja:loadClass "org.apache.jena.tdb.TDB" .
>>>> tdb:DatasetTDB  rdfs:subClassOf  ja:RDFDataset .
>>>> tdb:GraphTDB    rdfs:subClassOf  ja:Model .
>>>>
>>>> ## Initialize text query
>>>> [] ja:loadClass       "org.apache.jena.query.text.TextQuery" .
>>>> # A TextDataset is a regular dataset with a text index.
>>>> text:TextDataset      rdfs:subClassOf   ja:RDFDataset .
>>>> # Lucene index
>>>> text:TextIndexLucene  rdfs:subClassOf   text:TextIndex .
>>>>
>>>>
>>>> ## ---------------------------------------------------------------
>>>>
>>>>
>>>> :text_dataset rdf:type     text:TextDataset ;
>>>>       text:dataset   :my_dataset ;
>>>>       text:index     <#indexLucene> ;
>>>>       .
>>>>
>>>> # A TDB dataset used for RDF storage
>>>> :my_dataset rdf:type      tdb:DatasetTDB ;
>>>>       tdb:location "/home/text/tools/jena_data/" ;
>>>>       ja:context [ ja:cxtName "arq:queryTimeout" ; ja:cxtValue 
>>>> "1000" ] ;
>>>>
>>>> #    tdb:unionDefaultGraph true ; # Optional
>>>>       .
>>>>
>>>> # Text index description
>>>> <#indexLucene> a text:TextIndexLucene ;
>>>>       text:directory <file:/home/text/tools/jena_text_index/> ;
>>>>       text:entityMap <#entMap> ;
>>>>       text:storeValues true ;
>>>>       text:analyzer [ a text:StandardAnalyzer ] ;
>>>> # these mess up language search. why?
>>>> #     text:queryAnalyzer [ a text:KeywordAnalyzer ] ;
>>>> #     text:queryParser text:AnalyzingQueryParser ;
>>>>       text:multilingualSupport true ;
>>>>    .
>>>>
>>>> <#entMap> a text:EntityMap ;
>>>>       text:defaultField     "prefLabel" ;
>>>>       text:entityField      "uri" ;
>>>>       text:uidField         "uid" ;
>>>>       text:langField        "lang" ;
>>>>       text:graphField       "graph" ;
>>>>       text:map (
>>>>            [ text:field "prefLabel" ; text:predicate skos:prefLabel ]
>>>>            [ text:field "altLabel"  ; text:predicate skos:altLabel ]
>>>>            [ text:field "content"  ; text:predicate lsrm:content ]
>>>>            ) .
>>>>
>>>> <#service> rdf:type fuseki:Service ;
>>>>       fuseki:name                     "/ds" ;   # 
>>>> http://host:port/ds-ro
>>>>       fuseki:serviceQuery             "query" ;    # SPARQL query 
>>>> service
>>>>       fuseki:serviceQuery             "sparql" ;   # SPARQL query 
>>>> service
>>>>       fuseki:serviceUpdate            "update" ;   # SPARQL update 
>>>> service
>>>>       fuseki:serviceUpload            "upload" ;   # Non-SPARQL 
>>>> upload service
>>>>       fuseki:serviceReadWriteGraphStore "data" ;     # SPARQL Graph 
>>>> store protocol (read and write)
>>>>       fuseki:dataset           :text_dataset ;
>>>>       .
>>>>
>>

-- 
Lingsoft - 30 years of Leading Language Management

www.lingsoft.fi

Speech Applications - Language Management - Translation - Reader's and Writer's Tools - Text Tools - E-books and M-books

Mikael Pesonen
System Engineer

e-mail: mikael.pesonen@lingsoft.fi
Tel. +358 2 279 3300

Time zone: GMT+2

Helsinki Office
Eteläranta 10
FI-00130 Helsinki
FINLAND

Turku Office
Kauppiaskatu 5 A
FI-20100 Turku
FINLAND


Re: java.lang.NullPointerException

Posted by Andy Seaborne <an...@apache.org>.
Does it work if the fuseki:dataset connects to the dataseet without text 
index :my_dataset?

On 12/06/2019 13:00, Mikael Pesonen wrote:
> 
> Tested with smaller data and it works even when query takes 60+ seconds 
> (with 1 second timeout in config). I can provide you with the whole 
> data, it's just collection of public RDF schemas.
> 
> On 12/06/2019 14:05, Andy Seaborne wrote:
>> The exception is the query timeout counter.
>>
>> That worked for me when I tested the previous question.
>>
>> The setup is complex.
>> Do you have complete, minimal example on a plain database? Or does 
>> that work always?
>>
>>     Andy
>>
>>
>> On 11/06/2019 14:34, Mikael Pesonen wrote:
>>>
>>> Hi,
>>>
>>> following query causes exception every time it's executed. Exactly 
>>> same query has worked before, but can't say which Jena version it was.
>>>
>>>   [2019-06-11 13:02:51] Fuseki     WARN  [24] RC = 500 : null
>>> java.lang.NullPointerException
>>>          at 
>>> org.apache.jena.fuseki.servlets.SPARQL_Query.execute(SPARQL_Query.java:301) 
>>>
>>>          at 
>>> org.apache.jena.fuseki.servlets.SPARQL_Query.executeBody(SPARQL_Query.java:250) 
>>>
>>>          at 
>>> org.apache.jena.fuseki.servlets.SPARQL_Query.perform(SPARQL_Query.java:230) 
>>>
>>>          at 
>>> org.apache.jena.fuseki.servlets.ActionService.executeLifecycle(ActionService.java:266) 
>>>
>>>          at 
>>> org.apache.jena.fuseki.servlets.ActionService.execCommonWorker(ActionService.java:155) 
>>>
>>>          at 
>>> org.apache.jena.fuseki.servlets.ActionBase.doCommon(ActionBase.java:74)
>>>          at 
>>> org.apache.jena.fuseki.servlets.FusekiFilter.doFilter(FusekiFilter.java:73) 
>>>
>>>          at 
>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) 
>>>
>>>          at 
>>> org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) 
>>>
>>>          at 
>>> org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) 
>>>
>>>          at 
>>> org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) 
>>>
>>>          at 
>>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) 
>>>
>>>          at 
>>> org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) 
>>>
>>>          at 
>>> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) 
>>>
>>>          at 
>>> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) 
>>>
>>>          at 
>>> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) 
>>>
>>>          at 
>>> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) 
>>>
>>>          at 
>>> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) 
>>>
>>>          at 
>>> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) 
>>>
>>>          at 
>>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) 
>>>
>>>          at 
>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) 
>>>
>>>          at 
>>> org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:285) 
>>>
>>>          at 
>>> org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:248) 
>>>
>>>          at 
>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) 
>>>
>>>          at 
>>> org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:285) 
>>>
>>>          at 
>>> org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:248) 
>>>
>>>          at 
>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634) 
>>>
>>>          at 
>>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) 
>>>
>>>          at 
>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) 
>>>
>>>          at 
>>> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) 
>>>
>>>          at 
>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 
>>>
>>>          at 
>>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257) 
>>>
>>>          at 
>>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) 
>>>
>>>          at 
>>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) 
>>>
>>>          at 
>>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340) 
>>>
>>>          at 
>>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) 
>>>
>>>          at 
>>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) 
>>>
>>>          at 
>>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) 
>>>
>>>          at 
>>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) 
>>>
>>>          at 
>>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242) 
>>>
>>>          at 
>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) 
>>>
>>>          at 
>>> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:690) 
>>>
>>>          at 
>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 
>>>
>>>          at org.eclipse.jetty.server.Server.handle(Server.java:503)
>>>          at 
>>> org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
>>>          at 
>>> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) 
>>>
>>>          at 
>>> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) 
>>>
>>>          at 
>>> org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>>>          at 
>>> org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
>>>          at 
>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) 
>>>
>>>          at 
>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) 
>>>
>>>          at 
>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) 
>>>
>>>          at 
>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) 
>>>
>>>          at 
>>> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) 
>>>
>>>          at 
>>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765) 
>>>
>>>          at 
>>> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) 
>>>
>>>          at java.lang.Thread.run(Thread.java:748)
>>> [2019-06-11 13:02:51] Fuseki     INFO  [24] 500 Server Error (1.070 s)
>>>
>>>
>>>
>>> SELECT DISTINCT ?p ?label ?range   ?property_type
>>> (GROUP_CONCAT(DISTINCT ?comment_g; separator=" ") as ?comment)
>>> WHERE  {
>>>      GRAPH <http://resource.lingsoft.fi/rdf/schema_meta>
>>>      {
>>>          VALUES ?domain_property { rdfs:domain schema:domainIncludes }
>>>          VALUES ?general_domain { rdfs:Resource owl:Thing schema:Thing }
>>>          VALUES ?property_type { rdf:Property owl:DatatypeProperty 
>>> owl:ObjectProperty owl:AnnotationProperty }
>>>          VALUES ?class { <http://purl.org/dc/terms/Agent> 
>>> <http://xmlns.com/foaf/0.1/Agent> }
>>>          ?class rdfs:subClassOf* ?top_class .
>>>          { ?p ?domain_property ?top_class } UNION { ?p 
>>> rdfs:subPropertyOf* ?p2 . ?p2 ?domain_property ?top_class }
>>>
>>>          UNION { ?p ?domain_property ?general_domain }
>>>
>>>          UNION { ?p a ?property_type FILTER ( NOT EXISTS { ?p 
>>> rdfs:domain ?d } && NOT EXISTS { ?p schema:domainIncludes ?d } && NOT 
>>> EXISTS { ?p rdfs:subPropertyOf ?p2 . ?p2 rdfs:domain ?d FILTER (?d != 
>>> rdfs:Resource && ?d != owl:Thing) } ) }
>>>          OPTIONAL { ?p rdfs:subPropertyOf* ?p2 . { ?p2 
>>> schema:rangeIncludes ?range } UNION { ?p2 rdfs:range ?range } }
>>>          OPTIONAL { ?p rdfs:label ?label 
>>> FILTER(LANGMATCHES(LANG(?label), "en")) }
>>>          OPTIONAL { ?p rdfs:label ?label FILTER(LANG(?label) = "") }
>>>          OPTIONAL { ?p rdfs:label ?label }
>>>          OPTIONAL { ?p rdfs:comment ?comment_g 
>>> FILTER(LANGMATCHES(LANG(?comment_g), "en")) }
>>>          OPTIONAL { ?p rdfs:comment ?comment_g 
>>> FILTER(LANG(?comment_g) = "") }
>>>          OPTIONAL { ?p rdfs:comment ?comment_g }
>>>          OPTIONAL { ?p skos:definition ?comment_g 
>>> FILTER(LANGMATCHES(LANG(?comment_g), "en")) }
>>>          OPTIONAL { ?p skos:definition ?comment_g 
>>> FILTER(LANG(?comment_g) = "") }
>>>          OPTIONAL { ?p skos:definition ?comment_g }
>>>
>>>          FILTER ( NOT EXISTS { ?p schema:supersededBy ?sp } && NOT 
>>> EXISTS { ?p 
>>> <http://www.w3.org/2003/06/sw-vocab-status/ns#term_status> "archaic" 
>>> } && NOT EXISTS { ?p owl:deprecated "true"^^xsd:boolean } )
>>>   }  }
>>>   GROUP BY ?p ?label ?range ?property_type
>>>   ORDER BY ASC(?label)
>>>
>>>
>>>
>>> Jena Fuseki version 3.11
>>>
>>>   /usr/bin/java 
>>> -Dlog4j.configuration=file:/home/text/tools/apache-jena-fuseki-3.11.0/log4j.properties 
>>> -Xmx5600M -jar fuseki-server.jar --update --port 3030 
>>> --config=config.ttl
>>>
>>>
>>> config.ttl:
>>>
>>> @prefix :<http://localhost/jena_example/#>  .
>>> @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 ja:<http://jena.hpl.hp.com/2005/11/Assembler#>  .
>>> @prefix text:<http://jena.apache.org/text#>  .
>>> @prefix skos:<http://www.w3.org/2004/02/skos/core#>
>>> @prefix fuseki:<http://jena.apache.org/fuseki#>  .
>>> @prefix lsrm:<https://resource.lingsoft.fi/ns/resource_meta#> .
>>>
>>> [] rdf:type fuseki:Server ;
>>>     ja:context [ ja:cxtName "arq:queryTimeout" ;  ja:cxtValue "1000" ] ;
>>>     .
>>>
>>> ## Example of a TDB dataset and text index
>>> ## Initialize TDB
>>> [] ja:loadClass "org.apache.jena.tdb.TDB" .
>>> tdb:DatasetTDB  rdfs:subClassOf  ja:RDFDataset .
>>> tdb:GraphTDB    rdfs:subClassOf  ja:Model .
>>>
>>> ## Initialize text query
>>> [] ja:loadClass       "org.apache.jena.query.text.TextQuery" .
>>> # A TextDataset is a regular dataset with a text index.
>>> text:TextDataset      rdfs:subClassOf   ja:RDFDataset .
>>> # Lucene index
>>> text:TextIndexLucene  rdfs:subClassOf   text:TextIndex .
>>>
>>>
>>> ## ---------------------------------------------------------------
>>>
>>>
>>> :text_dataset rdf:type     text:TextDataset ;
>>>       text:dataset   :my_dataset ;
>>>       text:index     <#indexLucene> ;
>>>       .
>>>
>>> # A TDB dataset used for RDF storage
>>> :my_dataset rdf:type      tdb:DatasetTDB ;
>>>       tdb:location "/home/text/tools/jena_data/" ;
>>>       ja:context [ ja:cxtName "arq:queryTimeout" ; ja:cxtValue "1000" 
>>> ] ;
>>>
>>> #    tdb:unionDefaultGraph true ; # Optional
>>>       .
>>>
>>> # Text index description
>>> <#indexLucene> a text:TextIndexLucene ;
>>>       text:directory <file:/home/text/tools/jena_text_index/> ;
>>>       text:entityMap <#entMap> ;
>>>       text:storeValues true ;
>>>       text:analyzer [ a text:StandardAnalyzer ] ;
>>> # these mess up language search. why?
>>> #     text:queryAnalyzer [ a text:KeywordAnalyzer ] ;
>>> #     text:queryParser text:AnalyzingQueryParser ;
>>>       text:multilingualSupport true ;
>>>    .
>>>
>>> <#entMap> a text:EntityMap ;
>>>       text:defaultField     "prefLabel" ;
>>>       text:entityField      "uri" ;
>>>       text:uidField         "uid" ;
>>>       text:langField        "lang" ;
>>>       text:graphField       "graph" ;
>>>       text:map (
>>>            [ text:field "prefLabel" ; text:predicate skos:prefLabel ]
>>>            [ text:field "altLabel"  ; text:predicate skos:altLabel ]
>>>            [ text:field "content"  ; text:predicate lsrm:content ]
>>>            ) .
>>>
>>> <#service> rdf:type fuseki:Service ;
>>>       fuseki:name                     "/ds" ;   # http://host:port/ds-ro
>>>       fuseki:serviceQuery             "query" ;    # SPARQL query 
>>> service
>>>       fuseki:serviceQuery             "sparql" ;   # SPARQL query 
>>> service
>>>       fuseki:serviceUpdate            "update" ;   # SPARQL update 
>>> service
>>>       fuseki:serviceUpload            "upload" ;   # Non-SPARQL 
>>> upload service
>>>       fuseki:serviceReadWriteGraphStore "data" ;     # SPARQL Graph 
>>> store protocol (read and write)
>>>       fuseki:dataset           :text_dataset ;
>>>       .
>>>
> 

Re: java.lang.NullPointerException

Posted by Mikael Pesonen <mi...@lingsoft.fi>.
Tested with smaller data and it works even when query takes 60+ seconds 
(with 1 second timeout in config). I can provide you with the whole 
data, it's just collection of public RDF schemas.

On 12/06/2019 14:05, Andy Seaborne wrote:
> The exception is the query timeout counter.
>
> That worked for me when I tested the previous question.
>
> The setup is complex.
> Do you have complete, minimal example on a plain database? Or does 
> that work always?
>
>     Andy
>
>
> On 11/06/2019 14:34, Mikael Pesonen wrote:
>>
>> Hi,
>>
>> following query causes exception every time it's executed. Exactly 
>> same query has worked before, but can't say which Jena version it was.
>>
>>   [2019-06-11 13:02:51] Fuseki     WARN  [24] RC = 500 : null
>> java.lang.NullPointerException
>>          at 
>> org.apache.jena.fuseki.servlets.SPARQL_Query.execute(SPARQL_Query.java:301)
>>          at 
>> org.apache.jena.fuseki.servlets.SPARQL_Query.executeBody(SPARQL_Query.java:250) 
>>
>>          at 
>> org.apache.jena.fuseki.servlets.SPARQL_Query.perform(SPARQL_Query.java:230)
>>          at 
>> org.apache.jena.fuseki.servlets.ActionService.executeLifecycle(ActionService.java:266) 
>>
>>          at 
>> org.apache.jena.fuseki.servlets.ActionService.execCommonWorker(ActionService.java:155) 
>>
>>          at 
>> org.apache.jena.fuseki.servlets.ActionBase.doCommon(ActionBase.java:74)
>>          at 
>> org.apache.jena.fuseki.servlets.FusekiFilter.doFilter(FusekiFilter.java:73)
>>          at 
>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) 
>>
>>          at 
>> org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) 
>>
>>          at 
>> org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) 
>>
>>          at 
>> org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) 
>>
>>          at 
>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) 
>>
>>          at 
>> org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) 
>>
>>          at 
>> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) 
>>
>>          at 
>> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) 
>>
>>          at 
>> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) 
>>
>>          at 
>> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) 
>>
>>          at 
>> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) 
>>
>>          at 
>> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) 
>>
>>          at 
>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) 
>>
>>          at 
>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) 
>>
>>          at 
>> org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:285) 
>>
>>          at 
>> org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:248) 
>>
>>          at 
>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) 
>>
>>          at 
>> org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:285) 
>>
>>          at 
>> org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:248) 
>>
>>          at 
>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634) 
>>
>>          at 
>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
>>          at 
>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) 
>>
>>          at 
>> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
>>          at 
>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 
>>
>>          at 
>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257) 
>>
>>          at 
>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) 
>>
>>          at 
>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) 
>>
>>          at 
>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340) 
>>
>>          at 
>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) 
>>
>>          at 
>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
>>          at 
>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) 
>>
>>          at 
>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) 
>>
>>          at 
>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242) 
>>
>>          at 
>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) 
>>
>>          at 
>> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:690) 
>>
>>          at 
>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 
>>
>>          at org.eclipse.jetty.server.Server.handle(Server.java:503)
>>          at 
>> org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
>>          at 
>> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
>>          at 
>> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) 
>>
>>          at 
>> org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>>          at 
>> org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
>>          at 
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) 
>>
>>          at 
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) 
>>
>>          at 
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) 
>>
>>          at 
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) 
>>
>>          at 
>> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) 
>>
>>          at 
>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765) 
>>
>>          at 
>> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) 
>>
>>          at java.lang.Thread.run(Thread.java:748)
>> [2019-06-11 13:02:51] Fuseki     INFO  [24] 500 Server Error (1.070 s)
>>
>>
>>
>> SELECT DISTINCT ?p ?label ?range   ?property_type
>> (GROUP_CONCAT(DISTINCT ?comment_g; separator=" ") as ?comment)
>> WHERE  {
>>      GRAPH <http://resource.lingsoft.fi/rdf/schema_meta>
>>      {
>>          VALUES ?domain_property { rdfs:domain schema:domainIncludes }
>>          VALUES ?general_domain { rdfs:Resource owl:Thing schema:Thing }
>>          VALUES ?property_type { rdf:Property owl:DatatypeProperty 
>> owl:ObjectProperty owl:AnnotationProperty }
>>          VALUES ?class { <http://purl.org/dc/terms/Agent> 
>> <http://xmlns.com/foaf/0.1/Agent> }
>>          ?class rdfs:subClassOf* ?top_class .
>>          { ?p ?domain_property ?top_class } UNION { ?p 
>> rdfs:subPropertyOf* ?p2 . ?p2 ?domain_property ?top_class }
>>
>>          UNION { ?p ?domain_property ?general_domain }
>>
>>          UNION { ?p a ?property_type FILTER ( NOT EXISTS { ?p 
>> rdfs:domain ?d } && NOT EXISTS { ?p schema:domainIncludes ?d } && NOT 
>> EXISTS { ?p rdfs:subPropertyOf ?p2 . ?p2 rdfs:domain ?d FILTER (?d != 
>> rdfs:Resource && ?d != owl:Thing) } ) }
>>          OPTIONAL { ?p rdfs:subPropertyOf* ?p2 . { ?p2 
>> schema:rangeIncludes ?range } UNION { ?p2 rdfs:range ?range } }
>>          OPTIONAL { ?p rdfs:label ?label 
>> FILTER(LANGMATCHES(LANG(?label), "en")) }
>>          OPTIONAL { ?p rdfs:label ?label FILTER(LANG(?label) = "") }
>>          OPTIONAL { ?p rdfs:label ?label }
>>          OPTIONAL { ?p rdfs:comment ?comment_g 
>> FILTER(LANGMATCHES(LANG(?comment_g), "en")) }
>>          OPTIONAL { ?p rdfs:comment ?comment_g 
>> FILTER(LANG(?comment_g) = "") }
>>          OPTIONAL { ?p rdfs:comment ?comment_g }
>>          OPTIONAL { ?p skos:definition ?comment_g 
>> FILTER(LANGMATCHES(LANG(?comment_g), "en")) }
>>          OPTIONAL { ?p skos:definition ?comment_g 
>> FILTER(LANG(?comment_g) = "") }
>>          OPTIONAL { ?p skos:definition ?comment_g }
>>
>>          FILTER ( NOT EXISTS { ?p schema:supersededBy ?sp } && NOT 
>> EXISTS { ?p 
>> <http://www.w3.org/2003/06/sw-vocab-status/ns#term_status> "archaic" 
>> } && NOT EXISTS { ?p owl:deprecated "true"^^xsd:boolean } )
>>   }  }
>>   GROUP BY ?p ?label ?range ?property_type
>>   ORDER BY ASC(?label)
>>
>>
>>
>> Jena Fuseki version 3.11
>>
>>   /usr/bin/java 
>> -Dlog4j.configuration=file:/home/text/tools/apache-jena-fuseki-3.11.0/log4j.properties 
>> -Xmx5600M -jar fuseki-server.jar --update --port 3030 
>> --config=config.ttl
>>
>>
>> config.ttl:
>>
>> @prefix :<http://localhost/jena_example/#>  .
>> @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 ja:<http://jena.hpl.hp.com/2005/11/Assembler#>  .
>> @prefix text:<http://jena.apache.org/text#>  .
>> @prefix skos:<http://www.w3.org/2004/02/skos/core#>
>> @prefix fuseki:<http://jena.apache.org/fuseki#>  .
>> @prefix lsrm:<https://resource.lingsoft.fi/ns/resource_meta#> .
>>
>> [] rdf:type fuseki:Server ;
>>     ja:context [ ja:cxtName "arq:queryTimeout" ;  ja:cxtValue "1000" ] ;
>>     .
>>
>> ## Example of a TDB dataset and text index
>> ## Initialize TDB
>> [] ja:loadClass "org.apache.jena.tdb.TDB" .
>> tdb:DatasetTDB  rdfs:subClassOf  ja:RDFDataset .
>> tdb:GraphTDB    rdfs:subClassOf  ja:Model .
>>
>> ## Initialize text query
>> [] ja:loadClass       "org.apache.jena.query.text.TextQuery" .
>> # A TextDataset is a regular dataset with a text index.
>> text:TextDataset      rdfs:subClassOf   ja:RDFDataset .
>> # Lucene index
>> text:TextIndexLucene  rdfs:subClassOf   text:TextIndex .
>>
>>
>> ## ---------------------------------------------------------------
>>
>>
>> :text_dataset rdf:type     text:TextDataset ;
>>       text:dataset   :my_dataset ;
>>       text:index     <#indexLucene> ;
>>       .
>>
>> # A TDB dataset used for RDF storage
>> :my_dataset rdf:type      tdb:DatasetTDB ;
>>       tdb:location "/home/text/tools/jena_data/" ;
>>       ja:context [ ja:cxtName "arq:queryTimeout" ; ja:cxtValue "1000" 
>> ] ;
>>
>> #    tdb:unionDefaultGraph true ; # Optional
>>       .
>>
>> # Text index description
>> <#indexLucene> a text:TextIndexLucene ;
>>       text:directory <file:/home/text/tools/jena_text_index/> ;
>>       text:entityMap <#entMap> ;
>>       text:storeValues true ;
>>       text:analyzer [ a text:StandardAnalyzer ] ;
>> # these mess up language search. why?
>> #     text:queryAnalyzer [ a text:KeywordAnalyzer ] ;
>> #     text:queryParser text:AnalyzingQueryParser ;
>>       text:multilingualSupport true ;
>>    .
>>
>> <#entMap> a text:EntityMap ;
>>       text:defaultField     "prefLabel" ;
>>       text:entityField      "uri" ;
>>       text:uidField         "uid" ;
>>       text:langField        "lang" ;
>>       text:graphField       "graph" ;
>>       text:map (
>>            [ text:field "prefLabel" ; text:predicate skos:prefLabel ]
>>            [ text:field "altLabel"  ; text:predicate skos:altLabel ]
>>            [ text:field "content"  ; text:predicate lsrm:content ]
>>            ) .
>>
>> <#service> rdf:type fuseki:Service ;
>>       fuseki:name                     "/ds" ;   # http://host:port/ds-ro
>>       fuseki:serviceQuery             "query" ;    # SPARQL query 
>> service
>>       fuseki:serviceQuery             "sparql" ;   # SPARQL query 
>> service
>>       fuseki:serviceUpdate            "update" ;   # SPARQL update 
>> service
>>       fuseki:serviceUpload            "upload" ;   # Non-SPARQL 
>> upload service
>>       fuseki:serviceReadWriteGraphStore "data" ;     # SPARQL Graph 
>> store protocol (read and write)
>>       fuseki:dataset           :text_dataset ;
>>       .
>>

-- 
Lingsoft - 30 years of Leading Language Management

www.lingsoft.fi

Speech Applications - Language Management - Translation - Reader's and Writer's Tools - Text Tools - E-books and M-books

Mikael Pesonen
System Engineer

e-mail: mikael.pesonen@lingsoft.fi
Tel. +358 2 279 3300

Time zone: GMT+2

Helsinki Office
Eteläranta 10
FI-00130 Helsinki
FINLAND

Turku Office
Kauppiaskatu 5 A
FI-20100 Turku
FINLAND


Re: java.lang.NullPointerException

Posted by Andy Seaborne <an...@apache.org>.
The exception is the query timeout counter.

That worked for me when I tested the previous question.

The setup is complex.
Do you have complete, minimal example on a plain database? Or does that 
work always?

     Andy


On 11/06/2019 14:34, Mikael Pesonen wrote:
> 
> Hi,
> 
> following query causes exception every time it's executed. Exactly same 
> query has worked before, but can't say which Jena version it was.
> 
>   [2019-06-11 13:02:51] Fuseki     WARN  [24] RC = 500 : null
> java.lang.NullPointerException
>          at 
> org.apache.jena.fuseki.servlets.SPARQL_Query.execute(SPARQL_Query.java:301)
>          at 
> org.apache.jena.fuseki.servlets.SPARQL_Query.executeBody(SPARQL_Query.java:250) 
> 
>          at 
> org.apache.jena.fuseki.servlets.SPARQL_Query.perform(SPARQL_Query.java:230)
>          at 
> org.apache.jena.fuseki.servlets.ActionService.executeLifecycle(ActionService.java:266) 
> 
>          at 
> org.apache.jena.fuseki.servlets.ActionService.execCommonWorker(ActionService.java:155) 
> 
>          at 
> org.apache.jena.fuseki.servlets.ActionBase.doCommon(ActionBase.java:74)
>          at 
> org.apache.jena.fuseki.servlets.FusekiFilter.doFilter(FusekiFilter.java:73)
>          at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) 
> 
>          at 
> org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) 
> 
>          at 
> org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) 
> 
>          at 
> org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) 
> 
>          at 
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) 
> 
>          at 
> org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) 
> 
>          at 
> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) 
> 
>          at 
> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) 
> 
>          at 
> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) 
> 
>          at 
> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) 
> 
>          at 
> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) 
> 
>          at 
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) 
> 
>          at 
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) 
> 
>          at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) 
> 
>          at 
> org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:285) 
> 
>          at 
> org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:248) 
> 
>          at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) 
> 
>          at 
> org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:285) 
> 
>          at 
> org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:248) 
> 
>          at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634) 
> 
>          at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
>          at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) 
> 
>          at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
>          at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 
> 
>          at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257) 
> 
>          at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) 
> 
>          at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) 
> 
>          at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340) 
> 
>          at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) 
> 
>          at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
>          at 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) 
> 
>          at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) 
> 
>          at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242) 
> 
>          at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) 
> 
>          at 
> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:690) 
> 
>          at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 
> 
>          at org.eclipse.jetty.server.Server.handle(Server.java:503)
>          at 
> org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
>          at 
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
>          at 
> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) 
> 
>          at 
> org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>          at 
> org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
>          at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) 
> 
>          at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) 
> 
>          at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) 
> 
>          at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) 
> 
>          at 
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) 
> 
>          at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765) 
> 
>          at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) 
> 
>          at java.lang.Thread.run(Thread.java:748)
> [2019-06-11 13:02:51] Fuseki     INFO  [24] 500 Server Error (1.070 s)
> 
> 
> 
> SELECT DISTINCT ?p ?label ?range   ?property_type
> (GROUP_CONCAT(DISTINCT ?comment_g; separator=" ") as ?comment)
> WHERE  {
>      GRAPH <http://resource.lingsoft.fi/rdf/schema_meta>
>      {
>          VALUES ?domain_property { rdfs:domain schema:domainIncludes }
>          VALUES ?general_domain { rdfs:Resource owl:Thing schema:Thing }
>          VALUES ?property_type { rdf:Property owl:DatatypeProperty 
> owl:ObjectProperty owl:AnnotationProperty }
>          VALUES ?class { <http://purl.org/dc/terms/Agent> 
> <http://xmlns.com/foaf/0.1/Agent> }
>          ?class rdfs:subClassOf* ?top_class .
>          { ?p ?domain_property ?top_class } UNION { ?p 
> rdfs:subPropertyOf* ?p2 . ?p2 ?domain_property ?top_class }
> 
>          UNION { ?p ?domain_property ?general_domain }
> 
>          UNION { ?p a ?property_type FILTER ( NOT EXISTS { ?p 
> rdfs:domain ?d } && NOT EXISTS { ?p schema:domainIncludes ?d } && NOT 
> EXISTS { ?p rdfs:subPropertyOf ?p2 . ?p2 rdfs:domain ?d FILTER (?d != 
> rdfs:Resource && ?d != owl:Thing) } ) }
>          OPTIONAL { ?p rdfs:subPropertyOf* ?p2 . { ?p2 
> schema:rangeIncludes ?range } UNION { ?p2 rdfs:range ?range } }
>          OPTIONAL { ?p rdfs:label ?label 
> FILTER(LANGMATCHES(LANG(?label), "en")) }
>          OPTIONAL { ?p rdfs:label ?label FILTER(LANG(?label) = "") }
>          OPTIONAL { ?p rdfs:label ?label }
>          OPTIONAL { ?p rdfs:comment ?comment_g 
> FILTER(LANGMATCHES(LANG(?comment_g), "en")) }
>          OPTIONAL { ?p rdfs:comment ?comment_g FILTER(LANG(?comment_g) = 
> "") }
>          OPTIONAL { ?p rdfs:comment ?comment_g }
>          OPTIONAL { ?p skos:definition ?comment_g 
> FILTER(LANGMATCHES(LANG(?comment_g), "en")) }
>          OPTIONAL { ?p skos:definition ?comment_g 
> FILTER(LANG(?comment_g) = "") }
>          OPTIONAL { ?p skos:definition ?comment_g }
> 
>          FILTER ( NOT EXISTS { ?p schema:supersededBy ?sp } && NOT 
> EXISTS { ?p <http://www.w3.org/2003/06/sw-vocab-status/ns#term_status> 
> "archaic" } && NOT EXISTS { ?p owl:deprecated "true"^^xsd:boolean } )
>   }  }
>   GROUP BY ?p ?label ?range ?property_type
>   ORDER BY ASC(?label)
> 
> 
> 
> Jena Fuseki version 3.11
> 
>   /usr/bin/java 
> -Dlog4j.configuration=file:/home/text/tools/apache-jena-fuseki-3.11.0/log4j.properties 
> -Xmx5600M -jar fuseki-server.jar --update --port 3030 --config=config.ttl
> 
> 
> config.ttl:
> 
> @prefix :<http://localhost/jena_example/#>  .
> @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 ja:<http://jena.hpl.hp.com/2005/11/Assembler#>  .
> @prefix text:<http://jena.apache.org/text#>  .
> @prefix skos:<http://www.w3.org/2004/02/skos/core#>
> @prefix fuseki:<http://jena.apache.org/fuseki#>  .
> @prefix lsrm:<https://resource.lingsoft.fi/ns/resource_meta#> .
> 
> [] rdf:type fuseki:Server ;
>     ja:context [ ja:cxtName "arq:queryTimeout" ;  ja:cxtValue "1000" ] ;
>     .
> 
> ## Example of a TDB dataset and text index
> ## Initialize TDB
> [] ja:loadClass "org.apache.jena.tdb.TDB" .
> tdb:DatasetTDB  rdfs:subClassOf  ja:RDFDataset .
> tdb:GraphTDB    rdfs:subClassOf  ja:Model .
> 
> ## Initialize text query
> [] ja:loadClass       "org.apache.jena.query.text.TextQuery" .
> # A TextDataset is a regular dataset with a text index.
> text:TextDataset      rdfs:subClassOf   ja:RDFDataset .
> # Lucene index
> text:TextIndexLucene  rdfs:subClassOf   text:TextIndex .
> 
> 
> ## ---------------------------------------------------------------
> 
> 
> :text_dataset rdf:type     text:TextDataset ;
>       text:dataset   :my_dataset ;
>       text:index     <#indexLucene> ;
>       .
> 
> # A TDB dataset used for RDF storage
> :my_dataset rdf:type      tdb:DatasetTDB ;
>       tdb:location "/home/text/tools/jena_data/" ;
>       ja:context [ ja:cxtName "arq:queryTimeout" ; ja:cxtValue "1000" ] ;
> 
> #    tdb:unionDefaultGraph true ; # Optional
>       .
> 
> # Text index description
> <#indexLucene> a text:TextIndexLucene ;
>       text:directory <file:/home/text/tools/jena_text_index/> ;
>       text:entityMap <#entMap> ;
>       text:storeValues true ;
>       text:analyzer [ a text:StandardAnalyzer ] ;
> # these mess up language search. why?
> #     text:queryAnalyzer [ a text:KeywordAnalyzer ] ;
> #     text:queryParser text:AnalyzingQueryParser ;
>       text:multilingualSupport true ;
>    .
> 
> <#entMap> a text:EntityMap ;
>       text:defaultField     "prefLabel" ;
>       text:entityField      "uri" ;
>       text:uidField         "uid" ;
>       text:langField        "lang" ;
>       text:graphField       "graph" ;
>       text:map (
>            [ text:field "prefLabel" ; text:predicate skos:prefLabel ]
>            [ text:field "altLabel"  ; text:predicate skos:altLabel ]
>            [ text:field "content"  ; text:predicate lsrm:content ]
>            ) .
> 
> <#service> rdf:type fuseki:Service ;
>       fuseki:name                     "/ds" ;   # http://host:port/ds-ro
>       fuseki:serviceQuery             "query" ;    # SPARQL query service
>       fuseki:serviceQuery             "sparql" ;   # SPARQL query service
>       fuseki:serviceUpdate            "update" ;   # SPARQL update service
>       fuseki:serviceUpload            "upload" ;   # Non-SPARQL upload 
> service
>       fuseki:serviceReadWriteGraphStore "data" ;     # SPARQL Graph 
> store protocol (read and write)
>       fuseki:dataset           :text_dataset ;
>       .
>