This past January, I reported a bug to this list which was recorded as
JENA-378. I'm now experiencing what appears to be the same problem, where [ ]
syntax in an Insert script doesn't work when using UpdateExecutionFactory:
String updateString = "INSERT {} WHERE { ?x ?p [ ?a ?b ] }";
UpdateRequest update = UpdateFactory.create(updateString);
UpdateProcessor up = UpdateExecutionFactory.createRemote(update,
"http://localhost:3131/ds/update");
up.execute();
The error is: 400 Encountered " "?" "? ""
caused by the client generating incorrect SPARQL with an extra ? (as viewed
from the Fuseki log): INSERT { } WHERE { ?x ?p ??0 . ??0 ?a ?b }
This is with jena-core & jena-arg 2.10.2-SNAPSHOT, and with jena-fuseki
0.2.8-SNAPSHOT (compiled today).
--
Another problem I'm having which I can't track down is that the following code
takes a VERY long time to execute (10 minutes):
DatasetAccessorFactory.createHTTP("http://localhost:3131/ds/update").getModel(modelName);
With earlier versions of Fuseki, it would take seconds, with the same data. The
problem seems to be related to my Fuseki server instance itself, which is
0.2.8-SNAPSHOT (r1496513), and not to my client code, since even if I use the
older stable jena-core and jena-arq 2.10.0 and jena-fuseki 0.2.6, I also have
the problem (but not if I connect it to an earlier Fuseki release). Upon
debugging, it appears that for some reason the HTTP request itself is taking a
long time to complete. In fact, I'm not even getting anything in the Fuseki log
for about a minute after the request is made, but once the request is made I
immediately see a spike in CPU usage on the server. This doesn't appear to be a
network latency issue since other access to the server isn't affected, it
appears to be just this call. It would seem that Fuseki is spinning its wheels
on something.
I realize this may not be enough info for you to determine what is causing the
problem, but I don't know how else to track down the issue. Using s-get I can
get back the data quickly, which is strange since I though it would be doing
the same thing as the getModel().
Thank you,
Elli