[
https://issues.apache.org/jira/browse/JENA-1841?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17052153#comment-17052153
]
Andy Seaborne commented on JENA-1841:
-------------------------------------
All the calls to {{setWithNewDatatypeForValueClass}} in the core test suite
with class and object.toString
{noformat}
setWithNewDatatypeForValueClass : java.sql.Date : 1970-01-01
setWithNewDatatypeForValueClass :
org.apache.jena.rdf.model.test.TestLiteralImpl$UniqueValueClass1 : rhubarb
setWithNewDatatypeForValueClass :
org.apache.jena.rdf.model.test.TestLiteralImpl$UniqueValueClass2 : rhubarb
setWithNewDatatypeForValueClass : java.lang.Object : java.lang.Object@1bae316d
setWithNewDatatypeForValueClass :
org.apache.jena.rdf.model.test.AbstractModelTestBase$LitTestObj : [1234]
setWithNewDatatypeForValueClass : org.apache.jena.graph.Triple :
c1a67b12-c417-4adc-a9d0-4f08ee837c7c @http://jena.hpl.hp.com/example#
f1c20505-9083-4e07-af9b-e67134f556a5
setWithNewDatatypeForValueClass :
org.apache.jena.rdf.model.test.TestLiteralImpl$UniqueValueClass1 : rhubarb
setWithNewDatatypeForValueClass :
org.apache.jena.rdf.model.test.TestLiteralImpl$UniqueValueClass2 : rhubarb
setWithNewDatatypeForValueClass : java.lang.Object : java.lang.Object@f60a7c2
setWithNewDatatypeForValueClass :
org.apache.jena.rdf.model.test.AbstractModelTestBase$LitTestObj : [1234]
setWithNewDatatypeForValueClass :
org.apache.jena.rdf.model.test.TestLiteralImpl$UniqueValueClass1 : rhubarb
setWithNewDatatypeForValueClass :
org.apache.jena.rdf.model.test.TestLiteralImpl$UniqueValueClass2 : rhubarb
setWithNewDatatypeForValueClass : java.lang.Object : java.lang.Object@352d95e7
setWithNewDatatypeForValueClass :
org.apache.jena.rdf.model.test.AbstractModelTestBase$LitTestObj : [1234]
setWithNewDatatypeForValueClass :
org.apache.jena.rdf.model.test.TestLiteralImpl$UniqueValueClass1 : rhubarb
setWithNewDatatypeForValueClass :
org.apache.jena.rdf.model.test.TestLiteralImpl$UniqueValueClass2 : rhubarb
setWithNewDatatypeForValueClass : java.lang.Object : java.lang.Object@2b027283
setWithNewDatatypeForValueClass :
org.apache.jena.rdf.model.test.AbstractModelTestBase$LitTestObj : [1234]
{noformat}
> Side Effect of Datatype <java:java.util.UUID> Use in Query
> ----------------------------------------------------------
>
> Key: JENA-1841
> URL: https://issues.apache.org/jira/browse/JENA-1841
> Project: Apache Jena
> Issue Type: Bug
> Affects Versions: Jena 3.14.0
> Reporter: Jan Martin Keil
> Priority: Major
>
> I faced a bug caused by a side effect of using the datatype
> <java:java.util.UUID> in a query.
> Short story is that you can not use this datatype in model parsing or queries
> after you once used it in a query.
> I did not completely break it down to a specific piece of code, but I wrote
> some testcases that narrow down the issue. Please note that the order of
> execution of the test methods effect the result. So please first try to
> execute single test methods before executing the whole test class.
> {code:java}
> import java.io.ByteArrayInputStream;
> import java.util.UUID;
> import org.apache.jena.arq.querybuilder.SelectBuilder;
> import org.apache.jena.query.QueryExecution;
> import org.apache.jena.query.QueryExecutionFactory;
> import org.apache.jena.rdf.model.Model;
> import org.apache.jena.rdf.model.ModelFactory;
> import org.junit.jupiter.api.Test;
> public class UuidParsingintoModelOrQuery {
> @Test
> public void uuidParsingIntoSingleModel() throws Exception {
> UUID uuid1 =
> UUID.fromString("00000000-0000-0000-0000-000000000000");
> UUID uuid2 =
> UUID.fromString("00000000-0000-0000-0000-000000000001");
> String modelStr = "_:a <http://example.org/p1> \"" + uuid1 +
> "\"^^<java:java.util.UUID> .\n"
> + "_:a <http://example.org/p2> \"" + uuid1 +
> "\"^^<java:java.util.UUID> .";
> ModelFactory.createDefaultModel().read(new
> ByteArrayInputStream(modelStr.getBytes()), "", "N-TRIPLE");
> // repeat
> modelStr = "_:a <http://example.org/p1> \"" + uuid2 +
> "\"^^<java:java.util.UUID> .\n"
> + "_:a <http://example.org/p2> \"" + uuid2 +
> "\"^^<java:java.util.UUID> .";
> ModelFactory.createDefaultModel().read(new
> ByteArrayInputStream(modelStr.getBytes()), "", "N-TRIPLE");
> }
> @Test
> public void sameUuidParsingIntoSingleModel() throws Exception {
> UUID uuid1 =
> UUID.fromString("00000000-0000-0000-0000-000000000002");
> UUID uuid2 =
> UUID.fromString("00000000-0000-0000-0000-000000000003");
> String modelStr = "_:a <http://example.org/p1> \"" + uuid1 +
> "\"^^<java:java.util.UUID> .\n"
> + "_:a <http://example.org/p2> \"" + uuid2 +
> "\"^^<java:java.util.UUID> .";
> ModelFactory.createDefaultModel().read(new
> ByteArrayInputStream(modelStr.getBytes()), "", "N-TRIPLE");
> // repeat
> ModelFactory.createDefaultModel().read(new
> ByteArrayInputStream(modelStr.getBytes()), "", "N-TRIPLE");
> }
> @Test
> public void sameUuidParsingIntoMultipleModel() throws Exception {
> UUID uuid =
> UUID.fromString("00000000-0000-0000-0000-000000000004");
> String modelStr = "_:a <http://example.org/p1> \"" + uuid +
> "\"^^<java:java.util.UUID> .";
> ModelFactory.createDefaultModel().read(new
> ByteArrayInputStream(modelStr.getBytes()), "", "N-TRIPLE");
> ModelFactory.createDefaultModel().read(new
> ByteArrayInputStream(modelStr.getBytes()), "", "N-TRIPLE");
> }
> @Test
> public void uuidUseInQuery() throws Exception {
> UUID uuid =
> UUID.fromString("00000000-0000-0000-0000-000000000005");
> SelectBuilder select = new SelectBuilder();
> select.addWhere("?a", "<http://example.org/p>", "?uuid");
> select.addFilter(select.getExprFactory().eq("?uuid", uuid));
> QueryExecution q = QueryExecutionFactory.create(select.build());
> }
> @Test
> public void uuidParsingIntoQuery() throws Exception {
> UUID uuid =
> UUID.fromString("00000000-0000-0000-0000-000000000006");
> SelectBuilder select = new SelectBuilder();
> select.addWhere("?a", "<http://example.org/p>", "?uuid");
> select.addFilter(select.getExprFactory().eq("?uuid", uuid));
> QueryExecution q =
> QueryExecutionFactory.create(select.toString());
> }
> @Test
> public void uuidUseInQueryAndParsingIntoModel() throws Exception {
> UUID uuid =
> UUID.fromString("00000000-0000-0000-0000-000000000007");
> SelectBuilder select = new SelectBuilder();
> select.addWhere("?a", "<http://example.org/p>", "?uuid");
> select.addFilter(select.getExprFactory().eq("?uuid", uuid));
> QueryExecution q = QueryExecutionFactory.create(select.build());
> String modelStr = "_:a <http://example.org/p1> \"" + uuid +
> "\"^^<java:java.util.UUID> .\n"
> + "_:a <http://example.org/p2> \"" + uuid +
> "\"^^<java:java.util.UUID> .";
> Model model = ModelFactory.createDefaultModel().read(new
> ByteArrayInputStream(modelStr.getBytes()), "",
> "N-TRIPLE");
> }
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)