You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Stuart Taylor <st...@abdn.ac.uk> on 2013/09/02 17:15:51 UTC

Re: Fuseki concurrency problems: text search + inference

Hi Andy,

I've put together a more complete test case that hopefully you can
replicate. I'm running this on a clean copy of Fuseki extracted from
jena-fuseki-1.0.0-20130902.080009-8-distribution.tar.gz.

The test seems to depend only on the OWL part of schema and making a
query that triggers some rules in the inference graph. Also the
exception isn't thrown on the first time Fuseki is started after loading
the data, but is each time it is started after that. I've cut my dataset
down significantly so that there's a single owl:SymmetricProperty, which
also appears in the query, and then a bunch of direct sub properties.
I've attached the dataset, assembler file and the log from stdout.

1) Load the data and create the text index:

java -cp fuseki-server.jar tdb.tdbloader --tdb=hc-config-text.ttl
test-dataset.nt
java -cp fuseki-server.jar jena.textindexer --desc=hc-config-text.ttl

2) Start Fuseki:

./fuseki-server --config=hc-config-text.ttl --verbose

3) Run the queries:

./s-update --service http://localhost:3030/dataset/update 'prefix :
<http://example.org/fuseki-test.ttl#> insert data { <o1> :p <o2> }'
./s-query --service http://localhost:3030/dataset/query 'prefix :
<http://example.org/fuseki-test.ttl#> select * { <o1> :p ?o }'

(All okay up to this point).

4) Stop Fuseki -- (I'm sending SIGTERM to the JVM).

5) Start Fuseki:

./fuseki-server --config=hc-config-text.ttl --verbose

6) Run the queries a second time:

./s-update --service http://localhost:3030/dataset/update 'prefix :
<http://example.org/fuseki-test.ttl#> insert data { <o1> :p <o2> }'
./s-query --service http://localhost:3030/dataset/query 'prefix :
<http://example.org/fuseki-test.ttl#> select * { <o1> :p ?o }'

This time the SELECT query causes a concurrent modification exception.

Cheers,
Stuart.

On 30/08/13 17:28, Andy Seaborne wrote:
> On 30/08/13 13:41, Stuart Taylor wrote:
>> Thanks Andy that passes my test too.
>>
>> For the other exception, I still get the concurrent modification
>> exception using the same 'perform update, then select' test as before.
>
> Stuart,
>
> Can we sort out the test case?  I am trying this with the config file
> you provided.
>
> s-update --service http://localhost:3030/dataset/update 'FOO'
> s-query --service http://localhost:3030/dataset/query 'SELECT * { ?s
> ?p ?o } LIMIT 10'
>
> or a valid SPARQL Update
>
> and it works as does a text query of:
>
> PREFIX dct:  <http://purl.org/dc/terms/>
> PREFIX text: <http://jena.apache.org/text#>
> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
>
> SELECT *
> { ?s text:query (dct:title 'TITLE' 10) ;
>      dct:title ?label
> }
>
>
>     Andy
>
>
>>
>> On 29/08/13 20:14, Andy Seaborne wrote:
>>> On 29/08/13 18:11, Andy Seaborne wrote:
>>>> My bad.  I suspect I fixed one possible issue and tested on my reduced
>>>> example but not on your full example.  I thought I had a case that was
>>>> equivalent.
>>>>
>>>> I can reproduce it with current development ...
>>>>
>>>>      Andy
>>>
>>> Hi Stuart,
>>>
>>> That should be better.  The cases that work are:
>>>
>>> Text+TDB
>>> Text+one graph from a TDB dataset
>>> Text+inference on one graph from a TDB dataset
>>>
>>> In fact, the exception was mostly harmless albeit worrying when they
>>> show in the log file.
>>>
>>> Build #6
>>>
>>>     Andy
>>>
>>>>
>>>> On 29/08/13 13:45, Stuart Taylor wrote:
>>>>> I've tried my test with the build #4 snapshot. I still get the
>>>>> concurrent modification exception that I'd attached the log file for
>>>>> previously.
>>>>>
>>>>> I've also attached the log file for ' Can't abort a write
>>>>> lock-transaction' exception using the current build - this one is
>>>>> a lot
>>>>> easier to reproduce.
>>>>>
>>>>> Thanks,
>>>>> Stuart.
>>>>>
>>>>> On 28/08/13 23:59, Andy Seaborne wrote:
>>>>>> Hi Stuart,
>>>>>>
>>>>>> I've fixed something in the area - there's a new snapshot build.
>>>>>>
>>>>>> Build #3 or later contains it:
>>>>>>
>>>>>> https://repository.apache.org/content/repositories/snapshots/org/apache/jena/jena-fuseki/1.0.0-SNAPSHOT/
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Note the version number is 1.0.0-SNAPSHOT.
>>>>>>
>>>>>>     Andy
>>>>>>
>>>>>> On 28/08/13 19:52, Taylor, Stuart Rae wrote:
>>>>>>> The example runs without the exception if I don't use an inference
>>>>>>> graph.
>>>>>>>
>>>>>>> I tried to check if the update actually worked, but in doing this I
>>>>>>> found that this example only produces the exception if the triple
>>>>>>> being inserted is already in the graph. I can also make updates
>>>>>>> after
>>>>>>> the select query that causes the exception has run, without raising
>>>>>>> any further exceptions - it only seems to be happening the first
>>>>>>> time. Although I'm not sure how well this example captures things.
>>>>>>> ________________________________________
>>>>>>> From: Andy Seaborne <an...@apache.org>
>>>>>>> Sent: 28 August 2013 17:54
>>>>>>> To: users@jena.apache.org
>>>>>>> Subject: Re: Fuseki concurrency problems: text search + inference
>>>>>>>
>>>>>>> On 28/08/13 15:17, Stuart Taylor wrote:
>>>>>>>> Hi Andy,
>>>>>>>
>>>>>>> Hi stuart,
>>>>>>>
>>>>>>> Thanks for the example.  Do you happen to know if things work
>>>>>>> without
>>>>>>> the inference graph in between
>>>>>>>
>>>>>>> I don't see a syntax error in an update - do updates ever work?
>>>>>>>
>>>>>>>          Andy
>>>>>>>
>>>>>>>>
>>>>>>>> I've managed to reproduce the exception in JENA-523, just by
>>>>>>>> having an
>>>>>>>> error in the update query syntax.
>>>>>>>>
>>>>>>>> I've also managed to get the concurrent modification exception
>>>>>>>> triggered
>>>>>>>> by a more minimal example and without causing the exception in
>>>>>>>> JENA-523,
>>>>>>>> so I'm not sure whether it's a separate issue or not.
>>>>>>>>
>>>>>>>> The test queries sent to Fuseki using curl. The first and third
>>>>>>>> query
>>>>>>>> return 200, the second throws the exception. I've also attached
>>>>>>>> the
>>>>>>>> log
>>>>>>>> output from Fuseki.
>>>>>>>>
>>>>>>>> curl -v -H "Content-type: application/x-www-form-urlencoded" -X
>>>>>>>> POST
>>>>>>>> --data-urlencode 'update=prefix hc:
>>>>>>>> <http://www.hebrideanconnections.com/hebridean.owl#>
>>>>>>>> insert data { hc:633 hc:associatedWith hc:633 }' \
>>>>>>>> http://localhost:3030/dataset/update
>>>>>>>>
>>>>>>>> curl -v --data-urlencode 'query=prefix hc:
>>>>>>>> <http://www.hebrideanconnections.com/hebridean.owl#>
>>>>>>>> select * where { hc:633 ?p ?o }' \
>>>>>>>> http://localhost:3030/dataset/query
>>>>>>>>
>>>>>>>> curl -v --data-urlencode 'query=prefix hc:
>>>>>>>> <http://www.hebrideanconnections.com/hebridean.owl#>
>>>>>>>> select * where { hc:633 ?p ?o }' \
>>>>>>>> http://localhost:3030/dataset/query
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Stuart.
>>>>>>>>
>>>>>>>> On 28/08/13 10:05, Andy Seaborne wrote:
>>>>>>>>> Recorded as JENA-523
>>>>>>>>>
>>>>>>>>> https://issues.apache.org/jira/browse/JENA-523
>>>>>>>>>
>>>>>>>>> On 28/08/13 09:43, Andy Seaborne wrote:
>>>>>>>>>> On 27/08/13 22:47, Taylor, Stuart Rae wrote:
>>>>>>>>>>> Hi Andy,
>>>>>>>>>>>
>>>>>>>>>>> I didn't have the '--verbose' flag set when I created the logs
>>>>>>>>>>> for the
>>>>>>>>>>> previous message so I didn't get the update query that
>>>>>>>>>>> caused the
>>>>>>>>>>> exception. However I've tried again with verbose logging, and
>>>>>>>>>>> managed
>>>>>>>>>>> to get the exception thrown for the select query. The queries
>>>>>>>>>>> *should*
>>>>>>>>>>> be valid SPARQL (they're run several times in our system),
>>>>>>>>>>> but I
>>>>>>>>>>> will
>>>>>>>>>>> get some better logs asap.
>>>>>>>>>>>
>>>>>>>>>>> In this case, I have an update which returns HTTP 200:
>>>>>>>>>>>
>>>>>>>>>>> INSERT {
>>>>>>>>>>>     ?subject       hc:associatedWith hc:633 ;
>>>>>>>>>>>    } WHERE {
>>>>>>>>>>>     ?subject ?p ?o
>>>>>>>>>>>     FILTER ( ?subject = hc:90623 ) }
>>>>>>>>>>>
>>>>>>>>>>> Then the next select query triggers the
>>>>>>>>>>> ConcurrentModificationException in my last message.
>>>>>>>>>>>
>>>>>>>>>>> Sorry for the vagueness. I will try to isolate the conditions
>>>>>>>>>>> tomorrow.
>>>>>>>>>>
>>>>>>>>>> If I understand what's going on (and I don't :-) ...
>>>>>>>>>>
>>>>>>>>>> It's the first exception that matters - the later ones are
>>>>>>>>>> consequences
>>>>>>>>>> of the
>>>>>>>>>>
>>>>>>>>>> 17:43:33 WARN  DatasetGraphText     :: Exception in abort: Can't
>>>>>>>>>> abort a
>>>>>>>>>> write lock-transaction
>>>>>>>>>>
>>>>>>>>>> It is true you can't aborted a lock-managed transaction ... but
>>>>>>>>>> the code
>>>>>>>>>> seems to include the setup (parsing the update) in the
>>>>>>>>>>
>>>>>>>>>> So ...
>>>>>>>>>>
>>>>>>>>>> 1/ Need to find why the abort happened - the stacktrace
>>>>>>>>>> suggested a
>>>>>>>>>> parse error but I'm not 100% sure.
>>>>>>>>>>
>>>>>>>>>> 2/ The code ought to clean up better anyway (the later
>>>>>>>>>> exceptions).
>>>>>>>>>>
>>>>>>>>>>       Andy
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>> Stuart.
>>>>>>>>>>> ________________________________________
>>>>>>>>>>> From: Andy Seaborne <an...@apache.org>
>>>>>>>>>>> Sent: 27 August 2013 21:36
>>>>>>>>>>> To: users@jena.apache.org
>>>>>>>>>>> Subject: Re: Fuseki concurrency problems: text search +
>>>>>>>>>>> inference
>>>>>>>>>>>
>>>>>>>>>>> Stuart - quick question - and from code review, not use test
>>>>>>>>>>> running
>>>>>>>>>>> ...
>>>>>>>>>>>
>>>>>>>>>>> What was the update? Could it be that there was a syntax
>>>>>>>>>>> error in
>>>>>>>>>>> it?
>>>>>>>>>>>
>>>>>>>>>>>           Andy
>>>>>>>>>>>
>>>>>>>>>>> On 27/08/13 18:16, Stuart Taylor wrote:
>>>>>>>>>>>> Hi all,
>>>>>>>>>>>>
>>>>>>>>>>>> I'm having some more problems with Fuseki and full text
>>>>>>>>>>>> search.
>>>>>>>>>>>> I have
>>>>>>>>>>>> an InfModel backed by a TDB dataset, which I've added a Lucene
>>>>>>>>>>>> text
>>>>>>>>>>>> index to. I'm having problems with updates and select queries
>>>>>>>>>>>> resulting
>>>>>>>>>>>> in exceptions being thrown by Fuseki.
>>>>>>>>>>>>
>>>>>>>>>>>> I am running Fuseki 0.2.8-SNAPSHOT 20130826-0756 which should
>>>>>>>>>>>> include
>>>>>>>>>>>> the fixes for JENA-522 (where I was having problems earlier).
>>>>>>>>>>>>
>>>>>>>>>>>> Unfortunately I haven't managed to come up with a complete
>>>>>>>>>>>> running
>>>>>>>>>>>> example which reproduces the problem, but while I do that the
>>>>>>>>>>>> stack
>>>>>>>>>>>> traces from Fuseki's log might be able to shed some light on
>>>>>>>>>>>> what is
>>>>>>>>>>>> happening. I have also added the assembler file for my Fuseki
>>>>>>>>>>>> set
>>>>>>>>>>>> up at
>>>>>>>>>>>> the end of this message.
>>>>>>>>>>>>
>>>>>>>>>>>> After some SPARQL Update queries I occasionally get:
>>>>>>>>>>>>
>>>>>>>>>>>> 17:43:33 WARN  DatasetGraphText     :: Exception in abort:
>>>>>>>>>>>> Can't
>>>>>>>>>>>> abort a
>>>>>>>>>>>> write lock-transaction
>>>>>>>>>>>> com.hp.hpl.jena.sparql.JenaTransactionException: Can't abort a
>>>>>>>>>>>> write
>>>>>>>>>>>> lock-transaction
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.sparql.core.DatasetGraphWithLock._abort(DatasetGraphWithLock.java:100)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.sparql.core.DatasetGraphTrackActive.abort(DatasetGraphTrackActive.java:56)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.query.text.DatasetGraphText.abort(DatasetGraphText.java:139)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.HttpAction.abort(HttpAction.java:142)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_Update.execute(SPARQL_Update.java:248)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_Update.executeForm(SPARQL_Update.java:212)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_Update.perform(SPARQL_Update.java:110)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_ServletBase.executeLifecycle(SPARQL_ServletBase.java:184)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_ServletBase.executeAction(SPARQL_ServletBase.java:165)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_ServletBase.execCommonWorker(SPARQL_ServletBase.java:153)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_ServletBase.doCommon(SPARQL_ServletBase.java:73)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_Update.doPost(SPARQL_Update.java:80)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
>>>>>>>>>>>>       at
>>>>>>>>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:457)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.Server.handle(Server.java:370)
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.nio.BlockingChannelConnector$BlockingChannelEndPoint.run(BlockingChannelConnector.java:298)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at java.lang.Thread.run(Thread.java:722)
>>>>>>>>>>>> 17:43:33 WARN  HttpAction           :: Transaction still
>>>>>>>>>>>> active in
>>>>>>>>>>>> endWriter - no commit or abort seen (forced abort)
>>>>>>>>>>>> 17:43:33 WARN  DatasetGraphText     :: Exception in abort:
>>>>>>>>>>>> this
>>>>>>>>>>>> IndexWriter is closed
>>>>>>>>>>>> org.apache.lucene.store.AlreadyClosedException: this
>>>>>>>>>>>> IndexWriter is
>>>>>>>>>>>> closed
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.lucene.index.IndexWriter.ensureOpen(IndexWriter.java:614)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.lucene.index.IndexWriter.ensureOpen(IndexWriter.java:628)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.lucene.index.IndexWriter.rollback(IndexWriter.java:1974)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.query.text.TextIndexLucene.abortIndexing(TextIndexLucene.java:107)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.query.text.DatasetGraphText.abort(DatasetGraphText.java:137)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.HttpAction.endWrite(HttpAction.java:153)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_Update.execute(SPARQL_Update.java:257)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_Update.executeForm(SPARQL_Update.java:212)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_Update.perform(SPARQL_Update.java:110)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_ServletBase.executeLifecycle(SPARQL_ServletBase.java:184)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_ServletBase.executeAction(SPARQL_ServletBase.java:165)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_ServletBase.execCommonWorker(SPARQL_ServletBase.java:153)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_ServletBase.doCommon(SPARQL_ServletBase.java:73)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_Update.doPost(SPARQL_Update.java:80)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
>>>>>>>>>>>>       at
>>>>>>>>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:457)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.Server.handle(Server.java:370)
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.nio.BlockingChannelConnector$BlockingChannelEndPoint.run(BlockingChannelConnector.java:298)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at java.lang.Thread.run(Thread.java:722)
>>>>>>>>>>>>
>>>>>>>>>>>> Then running SELECT queries shortly after results in:
>>>>>>>>>>>>
>>>>>>>>>>>> 17:46:23 WARN  Fuseki               :: [13] RC = 500 :
>>>>>>>>>>>> Iterator:
>>>>>>>>>>>> started
>>>>>>>>>>>> at 24, now 30
>>>>>>>>>>>> java.util.ConcurrentModificationException: Iterator:
>>>>>>>>>>>> started at
>>>>>>>>>>>> 24,
>>>>>>>>>>>> now 30
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.tdb.sys.DatasetControlMRSW.policyError(DatasetControlMRSW.java:157)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.tdb.sys.DatasetControlMRSW.access$000(DatasetControlMRSW.java:32)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.tdb.sys.DatasetControlMRSW$IteratorCheckNotConcurrent.checkCourrentModification(DatasetControlMRSW.java:110)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.tdb.sys.DatasetControlMRSW$IteratorCheckNotConcurrent.hasNext(DatasetControlMRSW.java:118)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.atlas.iterator.Iter$4.hasNext(Iter.java:312)
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.atlas.iterator.Iter$4.hasNext(Iter.java:312)
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.atlas.iterator.Iter$4.hasNext(Iter.java:312)
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.atlas.iterator.Iter.hasNext(Iter.java:910)
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.util.iterator.WrappedIterator.hasNext(WrappedIterator.java:90)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.util.iterator.NiceIterator$1.hasNext(NiceIterator.java:103)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.util.iterator.NiceIterator$1.hasNext(NiceIterator.java:103)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.reasoner.rulesys.impl.TopLevelTripleMatchFrame.nextMatch(TopLevelTripleMatchFrame.java:55)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.reasoner.rulesys.impl.LPInterpreter.run(LPInterpreter.java:330)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.reasoner.rulesys.impl.LPInterpreter.next(LPInterpreter.java:192)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.reasoner.rulesys.impl.Generator.pump(Generator.java:250)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.reasoner.rulesys.impl.Generator.pump(Generator.java:237)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.reasoner.rulesys.impl.LPBRuleEngine.pump(LPBRuleEngine.java:308)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.reasoner.rulesys.impl.LPTopGoalIterator.moveForward(LPTopGoalIterator.java:109)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.reasoner.rulesys.impl.LPTopGoalIterator.hasNext(LPTopGoalIterator.java:222)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.util.iterator.WrappedIterator.hasNext(WrappedIterator.java:90)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.util.iterator.WrappedIterator.hasNext(WrappedIterator.java:90)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.util.iterator.FilterIterator.hasNext(FilterIterator.java:54)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.util.iterator.WrappedIterator.hasNext(WrappedIterator.java:90)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.util.iterator.FilterIterator.hasNext(FilterIterator.java:54)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.sparql.engine.iterator.QueryIterTriplePattern$TripleMapper.hasNextBinding(QueryIterTriplePattern.java:151)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:112)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:81)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:112)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.sparql.engine.iterator.QueryIterBlockTriples.hasNextBinding(QueryIterBlockTriples.java:64)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:112)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:40)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:112)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:40)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:112)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:40)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:112)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.sparql.engine.ResultSetStream.hasNext(ResultSetStream.java:75)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.sparql.resultset.ResultSetMem.<init>(ResultSetMem.java:97)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.query.ResultSetFactory.makeRewindable(ResultSetFactory.java:420)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.sparql.resultset.TextOutput.write(TextOutput.java:149)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.sparql.resultset.TextOutput.write(TextOutput.java:132)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.sparql.resultset.TextOutput.write(TextOutput.java:120)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.sparql.resultset.TextOutput.format(TextOutput.java:67)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> com.hp.hpl.jena.query.ResultSetFormatter.out(ResultSetFormatter.java:135)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.ResponseResultSet$3.output(ResponseResultSet.java:238)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.ResponseResultSet.output(ResponseResultSet.java:283)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.ResponseResultSet.textOutput(ResponseResultSet.java:244)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.ResponseResultSet.doResponseResultSet$(ResponseResultSet.java:145)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.ResponseResultSet.doResponseResultSet(ResponseResultSet.java:88)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_Query.sendResults(SPARQL_Query.java:348)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_Query.execute(SPARQL_Query.java:244)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_Query.executeWithParameter(SPARQL_Query.java:195)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_Query.perform(SPARQL_Query.java:80)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_ServletBase.executeLifecycle(SPARQL_ServletBase.java:184)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_ServletBase.executeAction(SPARQL_ServletBase.java:165)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_ServletBase.execCommonWorker(SPARQL_ServletBase.java:153)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_ServletBase.doCommon(SPARQL_ServletBase.java:73)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.apache.jena.fuseki.servlets.SPARQL_Query.doGet(SPARQL_Query.java:61)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:735)
>>>>>>>>>>>>       at
>>>>>>>>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1448)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:82)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:294)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.Server.handle(Server.java:370)
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.server.nio.BlockingChannelConnector$BlockingChannelEndPoint.run(BlockingChannelConnector.java:298)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at
>>>>>>>>>>>> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>       at java.lang.Thread.run(Thread.java:722)
>>>>>>>>>>>> 17:46:23 INFO  Fuseki               :: [13] 500 Iterator:
>>>>>>>>>>>> started
>>>>>>>>>>>> at 24,
>>>>>>>>>>>> now 30 (25 ms)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Here is the assembler file:
>>>>>>>>>>>>
>>>>>>>>>>>> @prefix :        <#> .
>>>>>>>>>>>> @prefix fuseki:
>>>>>>>>>>>> <http://jena.apache.org/fuseki#><http://jena.apache.org/fuseki#>
>>>>>>>>>>>>
>>>>>>>>>>>> .
>>>>>>>>>>>> @prefix rdf:
>>>>>>>>>>>> <http://www.w3.org/1999/02/22-rdf-syntax-ns#><http://www.w3.org/1999/02/22-rdf-syntax-ns#>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> .
>>>>>>>>>>>> @prefix rdfs:
>>>>>>>>>>>> <http://www.w3.org/2000/01/rdf-schema#><http://www.w3.org/2000/01/rdf-schema#>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> .
>>>>>>>>>>>> @prefix tdb:
>>>>>>>>>>>> <http://jena.hpl.hp.com/2008/tdb#><http://jena.hpl.hp.com/2008/tdb#>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> .
>>>>>>>>>>>> @prefix ja:
>>>>>>>>>>>> <http://jena.hpl.hp.com/2005/11/Assembler#><http://jena.hpl.hp.com/2005/11/Assembler#>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> .
>>>>>>>>>>>> @prefix text:
>>>>>>>>>>>> <http://jena.apache.org/text#><http://jena.apache.org/text#> .
>>>>>>>>>>>> @prefix dc:
>>>>>>>>>>>> <http://purl.org/dc/terms/><http://purl.org/dc/terms/> .
>>>>>>>>>>>>
>>>>>>>>>>>> [] rdf:type fuseki:Server ;
>>>>>>>>>>>>     # Timeout - server-wide default: milliseconds.
>>>>>>>>>>>>     # Format 1: "1000" -- 1 second timeout
>>>>>>>>>>>>     # Format 2: "10000,60000" -- 10s timeout to first result,
>>>>>>>>>>>> then 60s
>>>>>>>>>>>> timeout to for rest of query.
>>>>>>>>>>>>     # See java doc for ARQ.queryTimeout
>>>>>>>>>>>>     ja:context [ ja:cxtName "arq:queryTimeout" ;  ja:cxtValue
>>>>>>>>>>>> "12000,50000" ] ;
>>>>>>>>>>>>
>>>>>>>>>>>>     fuseki:services (
>>>>>>>>>>>>       <#service1>
>>>>>>>>>>>>     ) .
>>>>>>>>>>>>
>>>>>>>>>>>> # Custom code.
>>>>>>>>>>>> [] ja:loadClass "com.hp.hpl.jena.tdb.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 .
>>>>>>>>>>>>
>>>>>>>>>>>> ##
>>>>>>>>>>>> ---------------------------------------------------------------
>>>>>>>>>>>>
>>>>>>>>>>>> ## Service with only SPARQL query on an inference model.
>>>>>>>>>>>> ## Inference model bbase data in TDB.
>>>>>>>>>>>>
>>>>>>>>>>>> <#service1>  rdf:type fuseki:Service ;
>>>>>>>>>>>>     rdfs:label               "TDB/text service" ;
>>>>>>>>>>>>     fuseki:name              "dataset" ; #
>>>>>>>>>>>> http://host/dataset
>>>>>>>>>>>>     fuseki:serviceQuery      "query" ;
>>>>>>>>>>>>     fuseki:serviceUpdate     "update" ;
>>>>>>>>>>>>     fuseki:serviceUpload     "upload" ;
>>>>>>>>>>>>     fuseki:serviceReadWriteGraphStore "data" ;
>>>>>>>>>>>>     fuseki:serviceReadGraphStore "get" ;
>>>>>>>>>>>>     fuseki:dataset <#dataset_fulltext> ;
>>>>>>>>>>>>       .
>>>>>>>>>>>>
>>>>>>>>>>>> <#dataset_inf> rdf:type ja:RDFDataset ;
>>>>>>>>>>>>     ja:defaultGraph       <#model_inf> .
>>>>>>>>>>>>
>>>>>>>>>>>> <#model_inf> rdf:type ja:Model ;
>>>>>>>>>>>>     ja:baseModel <#tdbGraph> ;
>>>>>>>>>>>>     ja:reasoner [ ja:reasonerURL
>>>>>>>>>>>> <http://jena.hpl.hp.com/2003/OWLMicroFBRuleReasoner><http://jena.hpl.hp.com/2003/OWLMicroFBRuleReasoner>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> ] .
>>>>>>>>>>>>
>>>>>>>>>>>> <#tdbDataset> rdf:type tdb:DatasetTDB ;
>>>>>>>>>>>>     tdb:location "Data" .
>>>>>>>>>>>> <#tdbGraph> rdf:type tdb:GraphTDB ;
>>>>>>>>>>>>     tdb:dataset <#tdbDataset> .
>>>>>>>>>>>>
>>>>>>>>>>>> # Dataset with full text index.
>>>>>>>>>>>> <#dataset_fulltext> rdf:type text:TextDataset ;
>>>>>>>>>>>>     text:dataset   <#dataset_inf> ;
>>>>>>>>>>>>     ##text:dataset   <#tdbDataset> ;
>>>>>>>>>>>>     text:index     <#indexLucene> .
>>>>>>>>>>>>
>>>>>>>>>>>> # Text index description
>>>>>>>>>>>> <#indexLucene> a text:TextIndexLucene ;
>>>>>>>>>>>>     text:directory <file:Lucene><file:Lucene> ;
>>>>>>>>>>>>     ##text:directory "mem" ;
>>>>>>>>>>>>     text:entityMap <#entMap> ;
>>>>>>>>>>>>     .
>>>>>>>>>>>>
>>>>>>>>>>>> # Mapping in the index
>>>>>>>>>>>> # URI stored in field "uri"
>>>>>>>>>>>> # rdfs:label is mapped to field "text"
>>>>>>>>>>>> <#entMap> a text:EntityMap ;
>>>>>>>>>>>>     text:entityField      "uri" ;
>>>>>>>>>>>>     text:defaultField     "text" ;
>>>>>>>>>>>>     text:map (
>>>>>>>>>>>>       [ text:field "text" ; text:predicate dc:title ]
>>>>>>>>>>>>       [ text:field "text" ; text:predicate dc:description ]
>>>>>>>>>>>>     ) .
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Any advice appreciated!
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks,
>>>>>>>>>>>> Stuart.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> The University of Aberdeen is a charity registered in
>>>>>>>>>>>> Scotland, No
>>>>>>>>>>>> SC013683.
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> The University of Aberdeen is a charity registered in
>>>>>>>>>>> Scotland, No
>>>>>>>>>>> SC013683.
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> The University of Aberdeen is a charity registered in Scotland, No
>>>>>>>> SC013683.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> The University of Aberdeen is a charity registered in Scotland, No
>>>>>>> SC013683.
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> The University of Aberdeen is a charity registered in Scotland, No
>>>>> SC013683.
>>>>
>>>
>>>
>>>
>>
>>
>>
>> The University of Aberdeen is a charity registered in Scotland, No
>> SC013683.
>
>
>



The University of Aberdeen is a charity registered in Scotland, No SC013683.

Re: Fuseki concurrency problems: text search + inference

Posted by Andy Seaborne <an...@apache.org>.
On 03/09/13 15:48, Andy Seaborne wrote:
> Hi Stuart,
>
> Thanks - I'll need to find time to create his here.  Fro your
> description it might be more an issue about the inf model not properly
> supporting concurrent read access (and unrelated to the earlier issues,
> from the point-of-view of internal implementation) but it'll need
> investigation.

More complicated that the usual bugs!

I think I've tracked down both issues that combine to give this.  It was 
a combination of not passing clearing up sync calls down the stack of 
datasets/graphs and the way Fuseki decided whether transactions were 
safe or not (it needs a real abort to be able to fully stream updates).

The code in Fuseki is now very, and slightly overly, cautious as to when 
it will assume transactional storage and when it will use locking and 
sync'ing.  Your example now works for me; there was a timing aspect to 
it as well.

The updates aren't fully transactional for text-over-inf-over-TDB-graph. 
  The inference graph that gets in the way currently.  This should be 
fixable (JENA-530) but there is  fix in there for now.

New Fuseki snapshot built.

 >> 4) Stop Fuseki -- (I'm sending SIGTERM to the JVM).

After updates, the changes are flushed to disk so when there are no 
active updates it is safe to stop the server in anyway you want.  It's 
not as safe as full ACID transactions yet.

	Andy



>
>      Andy
>
> On 02/09/13 16:15, Stuart Taylor wrote:
>> Hi Andy,
>>
>> I've put together a more complete test case that hopefully you can
>> replicate. I'm running this on a clean copy of Fuseki extracted from
>> jena-fuseki-1.0.0-20130902.080009-8-distribution.tar.gz.
>>
>> The test seems to depend only on the OWL part of schema and making a
>> query that triggers some rules in the inference graph. Also the
>> exception isn't thrown on the first time Fuseki is started after loading
>> the data, but is each time it is started after that. I've cut my dataset
>> down significantly so that there's a single owl:SymmetricProperty, which
>> also appears in the query, and then a bunch of direct sub properties.
>> I've attached the dataset, assembler file and the log from stdout.
>>
>> 1) Load the data and create the text index:
>>
>> java -cp fuseki-server.jar tdb.tdbloader --tdb=hc-config-text.ttl
>> test-dataset.nt
>> java -cp fuseki-server.jar jena.textindexer --desc=hc-config-text.ttl
>>
>> 2) Start Fuseki:
>>
>> ./fuseki-server --config=hc-config-text.ttl --verbose
>>
>> 3) Run the queries:
>>
>> ./s-update --service http://localhost:3030/dataset/update 'prefix :
>> <http://example.org/fuseki-test.ttl#> insert data { <o1> :p <o2> }'
>> ./s-query --service http://localhost:3030/dataset/query 'prefix :
>> <http://example.org/fuseki-test.ttl#> select * { <o1> :p ?o }'
>>
>> (All okay up to this point).
>>
>> 4) Stop Fuseki -- (I'm sending SIGTERM to the JVM).
>>
>> 5) Start Fuseki:
>>
>> ./fuseki-server --config=hc-config-text.ttl --verbose
>>
>> 6) Run the queries a second time:
>>
>> ./s-update --service http://localhost:3030/dataset/update 'prefix :
>> <http://example.org/fuseki-test.ttl#> insert data { <o1> :p <o2> }'
>> ./s-query --service http://localhost:3030/dataset/query 'prefix :
>> <http://example.org/fuseki-test.ttl#> select * { <o1> :p ?o }'
>>
>> This time the SELECT query causes a concurrent modification exception.
>>
>> Cheers,
>> Stuart.
>


Re: Fuseki concurrency problems: text search + inference

Posted by Andy Seaborne <an...@apache.org>.
Hi Stuart,

Thanks - I'll need to find time to create his here.  Fro your 
description it might be more an issue about the inf model not properly 
supporting concurrent read access (and unrelated to the earlier issues, 
from the point-of-view of internal implementation) but it'll need 
investigation.

	Andy

On 02/09/13 16:15, Stuart Taylor wrote:
> Hi Andy,
>
> I've put together a more complete test case that hopefully you can
> replicate. I'm running this on a clean copy of Fuseki extracted from
> jena-fuseki-1.0.0-20130902.080009-8-distribution.tar.gz.
>
> The test seems to depend only on the OWL part of schema and making a
> query that triggers some rules in the inference graph. Also the
> exception isn't thrown on the first time Fuseki is started after loading
> the data, but is each time it is started after that. I've cut my dataset
> down significantly so that there's a single owl:SymmetricProperty, which
> also appears in the query, and then a bunch of direct sub properties.
> I've attached the dataset, assembler file and the log from stdout.
>
> 1) Load the data and create the text index:
>
> java -cp fuseki-server.jar tdb.tdbloader --tdb=hc-config-text.ttl
> test-dataset.nt
> java -cp fuseki-server.jar jena.textindexer --desc=hc-config-text.ttl
>
> 2) Start Fuseki:
>
> ./fuseki-server --config=hc-config-text.ttl --verbose
>
> 3) Run the queries:
>
> ./s-update --service http://localhost:3030/dataset/update 'prefix :
> <http://example.org/fuseki-test.ttl#> insert data { <o1> :p <o2> }'
> ./s-query --service http://localhost:3030/dataset/query 'prefix :
> <http://example.org/fuseki-test.ttl#> select * { <o1> :p ?o }'
>
> (All okay up to this point).
>
> 4) Stop Fuseki -- (I'm sending SIGTERM to the JVM).
>
> 5) Start Fuseki:
>
> ./fuseki-server --config=hc-config-text.ttl --verbose
>
> 6) Run the queries a second time:
>
> ./s-update --service http://localhost:3030/dataset/update 'prefix :
> <http://example.org/fuseki-test.ttl#> insert data { <o1> :p <o2> }'
> ./s-query --service http://localhost:3030/dataset/query 'prefix :
> <http://example.org/fuseki-test.ttl#> select * { <o1> :p ?o }'
>
> This time the SELECT query causes a concurrent modification exception.
>
> Cheers,
> Stuart.