[
https://issues.apache.org/jira/browse/JENA-2197?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andy Seaborne resolved JENA-2197.
---------------------------------
Fix Version/s: Jena 4.3.0
Resolution: Fixed
> illegal argument exception when querying dateTime literals with tabs and
> linefeeds
> ----------------------------------------------------------------------------------
>
> Key: JENA-2197
> URL: https://issues.apache.org/jira/browse/JENA-2197
> Project: Apache Jena
> Issue Type: Bug
> Components: SPARQL
> Affects Versions: Jena 3.17.0, Jena 4.3.0
> Reporter: Johannes Frey
> Assignee: Andy Seaborne
> Priority: Major
> Fix For: Jena 4.3.0
>
> Attachments: date-issue.sparql
>
>
> I queried the lod-a-lot HDT file [http://lod-a-lot.lod.labs.vu.nl/] to get
> some statistics about datatypes.
> {code:java}
> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
> SELECT ?pred ?type (COUNT(*) AS ?cType) WHERE {
> ?sub ?pred ?obj .
> BIND( datatype(?obj) as ?type)
> }
> GROUP BY ?pred ?type {code}
> Unfortunately the query aborts with the following stacktrace due to some
> strange datetime literal in the data (tabs and newline feeds)
> {code:java}
> java.lang.IllegalArgumentException: 2010-08-05T12:32:31
> at
> org.apache.jena.ext.xerces.jaxp.datatype.XMLGregorianCalendarImpl$Parser.parseYear
> (XMLGregorianCalendarImpl.java:2990)
> at
> org.apache.jena.ext.xerces.jaxp.datatype.XMLGregorianCalendarImpl$Parser.parse
> (XMLGregorianCalendarImpl.java:2900)
> at
> org.apache.jena.ext.xerces.jaxp.datatype.XMLGregorianCalendarImpl.<init>
> (XMLGregorianCalendarImpl.java:479)
> at
> org.apache.jena.ext.xerces.jaxp.datatype.DatatypeFactoryImpl.newXMLGregorianCalendar
> (DatatypeFactoryImpl.java:235)
> at org.apache.jena.sparql.expr.nodevalue.NodeValueDT.<init>
> (NodeValueDT.java:53)
> at org.apache.jena.sparql.expr.NodeValue._setByValue (NodeValue.java:1044)
> at org.apache.jena.sparql.expr.NodeValue.nodeToNodeValue
> (NodeValue.java:963)
> at org.apache.jena.sparql.expr.NodeValue.makeNode (NodeValue.java:256)
> at org.apache.jena.sparql.expr.nodevalue.NodeFunctions.strDatatype
> (NodeFunctions.java:504)
> at org.apache.jena.sparql.expr.E_StrDatatype.eval (E_StrDatatype.java:37)
> at org.apache.jena.sparql.expr.ExprFunction2.eval (ExprFunction2.java:84)
> at org.apache.jena.sparql.expr.ExprFunction2.eval (ExprFunction2.java:78)
> at org.apache.jena.sparql.expr.ExprNode.eval (ExprNode.java:93)
> at org.apache.jena.sparql.expr.ExprFunction1.eval (ExprFunction1.java:68)
> at org.apache.jena.sparql.core.VarExprList.get (VarExprList.java:106)
> at org.apache.jena.sparql.engine.iterator.QueryIterAssign.accept
> (QueryIterAssign.java:62)
> at
> org.apache.jena.sparql.engine.iterator.QueryIterProcessBinding.hasNextBinding
> (QueryIterProcessBinding.java:69)
> at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext
> (QueryIteratorBase.java:114)
> at org.apache.jena.sparql.engine.iterator.QueryIterConvert.hasNextBinding
> (QueryIterConvert.java:58)
> at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext
> (QueryIteratorBase.java:114)
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding
> (QueryIteratorWrapper.java:38)
> at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext
> (QueryIteratorBase.java:114)
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding
> (QueryIteratorWrapper.java:38)
> at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext
> (QueryIteratorBase.java:114)
> at org.apache.jena.sparql.engine.ResultSetStream.hasNext
> (ResultSetStream.java:74)
> at org.apache.jena.sparql.engine.ResultSetCheckCondition.hasNext
> (ResultSetCheckCondition.java:55)
> at org.apache.jena.sparql.resultset.CSVOutput.format (CSVOutput.java:81)
> at org.apache.jena.riot.resultset.ResultSetWriterRegistry$1.write
> (ResultSetWriterRegistry.java:89)
> at org.apache.jena.riot.resultset.rw.ResultsWriter.write
> (ResultsWriter.java:127)
> at org.apache.jena.riot.resultset.rw.ResultsWriter.write
> (ResultsWriter.java:97)
> at org.apache.jena.riot.resultset.rw.ResultsWriter$Builder.write
> (ResultsWriter.java:71)
> at org.apache.jena.query.ResultSetFormatter.output
> (ResultSetFormatter.java:310)
> at org.apache.jena.query.ResultSetFormatter.outputAsCSV
> (ResultSetFormatter.java:629)
> at org.rdfhdt.hdtjena.cmd.HDTSparql.execute (HDTSparql.java:66)
> at org.rdfhdt.hdtjena.cmd.HDTSparql.main (HDTSparql.java:131)
> at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke
> (NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke (Method.java:498)
> at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:282)
> at java.lang.Thread.run (Thread.java:748)
> {code}
> I could reproduce the issue with a "standalone" SPARQL query (attached) in
> Jena 3.17 and a 4.3 snapshot without using the HDT setup
> the base64 encoding of the query is
> {code:java}
> UFJFRklYIHJkZjogPGh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyM+ClBSRUZJWCByZGZzOiA8aHR0cDovL3d3dy53My5vcmcvMjAwMC8wMS9yZGYtc2NoZW1hIz4KCnNlbGVjdCAoREFUQVRZUEUoU1RSRFQoIiIiIAkJCTIwMTAtMDgtMDVUMTI6MzI6MzEKCQkiIiIsIDxodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSNkYXRlVGltZT4pKSAgQVMgP3gpIHt9Cg==
> {code}
> md5sum e9e88f204fbb3b45935300c8472c39b2
>
--
This message was sent by Atlassian Jira
(v8.20.1#820001)