Stephen Allen created JENA-462:
----------------------------------
Summary: URIs ending in a percent-encoded character cannot be
written as a property in RDF/XML
Key: JENA-462
URL: https://issues.apache.org/jira/browse/JENA-462
Project: Apache Jena
Issue Type: Bug
Reporter: Stephen Allen
URIs ending in a percent-encoded character cannot be written as a property in
RDF/XML. Note that there is no problem using this URI in the subject or object
positions, or using a different serialization like Turtle.
I'm not sure why BaseXMLWriter.java line 384 requires the ability to split
predicate URIs into a namespace and local part. Is this a requirement of
RDF/XML?
Steps to Reproduce:
1) Start Fuseki
2) Perform following SPARQL Update:
insert data { <http://example.org/Test> <http://example.org/Foo%27> "Foo"
. }
3) Issue the following query (with XML selected as output):
construct { ?s ?p "Foo" . } where { ?s ?p "Foo" . }
Expected Results:
Proper RDF/XML.
Actual Results:
com.hp.hpl.jena.shared.InvalidPropertyURIException: http://example.org/Foo%27
at
com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.splitTag(BaseXMLWriter.java:384)
at
com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.tag(BaseXMLWriter.java:396)
at
com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.startElementTag(BaseXMLWriter.java:355)
at com.hp.hpl.jena.xmloutput.impl.Basic.writePredicate(Basic.java:101)
at
com.hp.hpl.jena.xmloutput.impl.Basic.writeRDFStatements(Basic.java:85)
at
com.hp.hpl.jena.xmloutput.impl.Basic.writeRDFStatements(Basic.java:74)
at com.hp.hpl.jena.xmloutput.impl.Basic.writeBody(Basic.java:48)
at
com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.writeXMLBody(BaseXMLWriter.java:492)
at
com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.write(BaseXMLWriter.java:464)
at
com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.write(BaseXMLWriter.java:450)
at
org.apache.jena.fuseki.servlets.ResponseModel.doResponseModel(ResponseModel.java:121)
at
org.apache.jena.fuseki.servlets.SPARQL_Query.sendResults(SPARQL_Query.java:349)
at
org.apache.jena.fuseki.servlets.SPARQL_Query.execute(SPARQL_Query.java:255)
at
org.apache.jena.fuseki.servlets.SPARQL_Query.executeWithParameter(SPARQL_Query.java:215)
at
org.apache.jena.fuseki.servlets.SPARQL_Query.perform(SPARQL_Query.java:106)
at
org.apache.jena.fuseki.servlets.SPARQL_ServletBase.doCommonWorker(SPARQL_ServletBase.java:117)
at
org.apache.jena.fuseki.servlets.SPARQL_ServletBase.doCommon(SPARQL_ServletBase.java:67)
at
org.apache.jena.fuseki.servlets.SPARQL_Query.doGet(SPARQL_Query.java:86)
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:669)
at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1336)
at
org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:82)
at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:243)
at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453)
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)
at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)
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:365)
at
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)
at
org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
at
org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:926)
at
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:988)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635)
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:662)
--
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