You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Bill Roberts (JIRA)" <ji...@apache.org> on 2013/04/14 14:24:17 UTC
[jira] [Created] (JENA-435) Two services in one fuseki instance can
conflict if the initial characters of the fuseki:name of one service are
equal to the full fuseki:name of the other service
Bill Roberts created JENA-435:
---------------------------------
Summary: Two services in one fuseki instance can conflict if the initial characters of the fuseki:name of one service are equal to the full fuseki:name of the other service
Key: JENA-435
URL: https://issues.apache.org/jira/browse/JENA-435
Project: Apache Jena
Issue Type: Bug
Components: Fuseki
Affects Versions: Fuseki 0.2.6
Environment: tested on Mac OSX 10.8.2.
Reporter: Bill Roberts
Steps to reproduce
fuseki-server --config=test.ttl
where test.ttl contains the following:
===============
[] ja:loadClass "com.hp.hpl.jena.tdb.TDB" .
tdb:DatasetTDB rdfs:subClassOf ja:RDFDataset .
tdb:GraphTDB rdfs:subClassOf ja:Model .
<#service1> rdf:type fuseki:Service ;
fuseki:name "abc" ; # http://host:port/blah
fuseki:serviceQuery "sparql" ; # SPARQL query service
fuseki:serviceUpdate "update" ; # SPARQL update service
fuseki:serviceReadWriteGraphStore "data" ; # SPARQL Graph store protocol (read and write)
fuseki:dataset <#dataset-foo> ;
.
<#service2> rdf:type fuseki:Service ;
fuseki:name "abc123" ; # http://host:port/blah
fuseki:serviceQuery "sparql" ; # SPARQL query service
fuseki:serviceUpdate "update" ; # SPARQL update service
fuseki:serviceReadWriteGraphStore "data" ; # SPARQL Graph store protocol (read and write)
fuseki:dataset <#dataset-bar> ;
.
<#dataset-foo> rdf:type tdb:DatasetTDB ;
tdb:location "/Users/bill/Data/tdb/pqr" ;
tdb:unionDefaultGraph true ;
.
<#dataset-bar> rdf:type tdb:DatasetTDB ;
tdb:location "/Users/bill/Data/tdb/xyz" ;
tdb:unionDefaultGraph true ;
.
============
Create empty directories 'pqr' and 'xyz' to hold the data for the two SPARQL datasets.
Then, PUT some data into the first service (fuseki:name 'abc') (any valid RDF will do)
curl -v -H "Content-type: text/turtle" --upload-file file1.ttl http://localhost:3030/abc/data?graph=http://test1
-- responds with 201 Created
Then PUT some data into the second service (fuseki:name 'abc123')
curl -v -H "Content-type: text/turtle" --upload-file file2.ttl http://localhost:3030/abc123/data?graph=http://test1
- responds with 204 Created - indicating that the graph already existed before this PUT.
Checks on the contents of the two datasets indicate that the second PUT went into the service 'abc', not into 'abc123'.
Guess at possible cause: does the URL parsing in fuseki involve some kind of simple regex which leads to 'abc' giving a successful match against 'abc123' when it should not match?
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira