[ 
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

Reply via email to