[
http://issues.ops4j.org/jira/browse/QI-56?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_11309
]
Peter Neubauer commented on QI-56:
----------------------------------
Ok,
is that enforceable via some Constraint on properties, so we get a better
exception or preferably compile time safety?
> Entity retrieval ClassCastException
> -----------------------------------
>
> Key: QI-56
> URL: http://issues.ops4j.org/jira/browse/QI-56
> Project: Qi4j
> Issue Type: Bug
> Components: Persistence
> Reporter: Peter Neubauer
> Assignee: Niclas Hedhman
> Attachments: AbstractStandardComposite.java, Issue.java,
> IssueComposite.java, IssueTest.java, Position.java, PositionEntity.java,
> PositionTestCase.java
>
>
> I am getting the following output from a test trying to work it's way
> backward in the entity chain:
> Output:
> ( Position:latitude = "13.2"^^Double )
> Query: PREFIX ns2: <urn:qi4j:property:com.civilone.domain.Position:> PREFIX
> rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX ns0:
> <urn:qi4j:org.qi4j.composite.Composite:> PREFIX rdfs:
> <http://www.w3.org/2000/01/rdf-schema#> PREFIX ns1:
> <urn:qi4j:property:org.qi4j.entity.Identity:> SELECT DISTINCT ?entityType
> ?identity WHERE {?entity rdf:type <urn:qi4j:com.civilone.domain.Position>.
> ?entity ns0:entityType ?entityType. ?entity ns1:identity ?identity. ?entity
> ns2:latitude ?v0. FILTER (?v0 = "13.2")}
> [main] INFO org.openrdf.query.parser.QueryParserRegistry - Registered service
> class org.openrdf.query.parser.serql.SeRQLParserFactory
> [main] INFO org.openrdf.query.parser.QueryParserRegistry - Registered service
> class org.openrdf.query.parser.sparql.SPARQLParserFactory
> com.civilone.domain.PositionEntity -> 3b48e657-def4-4d26-ad6b-e424da177055-1
> Result: 13.2
> ( Issue:position = "3b48e657-def4-4d26-ad6b-e424da177055-1"^^Position )
> Query: PREFIX ns2: <urn:qi4j:property:com.civilone.domain.Issue:> PREFIX rdf:
> <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX ns0:
> <urn:qi4j:org.qi4j.composite.Composite:> PREFIX rdfs:
> <http://www.w3.org/2000/01/rdf-schema#> PREFIX ns1:
> <urn:qi4j:property:org.qi4j.entity.Identity:> SELECT DISTINCT ?entityType
> ?identity WHERE {?entity rdf:type <urn:qi4j:com.civilone.domain.Issue>.
> ?entity ns0:entityType ?entityType. ?entity ns1:identity ?identity. ?entity
> ns2:position ?v0. FILTER (?v0 = "3b48e657-def4-4d26-ad6b-e424da177055-1")}
> com.civilone.domain.IssueComposite -> 3b48e657-def4-4d26-ad6b-e424da177055-0
> And the stack trace:
> java.lang.ClassCastException: org.qi4j.spi.entity.QualifiedIdentity
> at
> com.civilone.domain.IssueTest.ifPositionOnIssueSetThenPropertyShouldBeThere(IssueTest.java:58)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
> at
> org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98)
> at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79)
> at
> org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87)
> at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
> at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
> at
> org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
> at
> org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
> at
> org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
> at
> org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
> at
> org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
> at
> org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
> at
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
> at
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.ops4j.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev