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