You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@olingo.apache.org by "Chandan V.A (JIRA)" <ji...@apache.org> on 2015/06/30 14:48:04 UTC

[jira] [Assigned] (OLINGO-714) ClassCastException on expand when multiple times the same entity is referenced

     [ https://issues.apache.org/jira/browse/OLINGO-714?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Chandan V.A reassigned OLINGO-714:
----------------------------------

    Assignee: Chandan V.A

> ClassCastException on expand when multiple times the same entity is referenced
> ------------------------------------------------------------------------------
>
>                 Key: OLINGO-714
>                 URL: https://issues.apache.org/jira/browse/OLINGO-714
>             Project: Olingo
>          Issue Type: Bug
>          Components: odata2-jpa
>    Affects Versions: V2 2.0.5
>         Environment: java 8, wildfly-8.2.0, hibernate 4.3.7.Final
>            Reporter: Manuel Blechschmidt
>            Assignee: Chandan V.A
>              Labels: ClassCastException
>
> When an entity has multiple relations to another entity and one of these relations is a unidirectional @ManyToOne relation a class cast exception is thrown.
> e.g.
> {code:java}
> @Entity
> public class Entity {
>     @Id
>     private String id;
>     @ManyToOne(fetch=FetchType.LAZY)
>     private OtherEntity primaryOtherEntity;
>     @OneToMany(mappedBy="entity", fetch=FetchType.LAZY)
>     private List<OtherEntity> OtherEntities;
>    // ... getter and setter
> }
> @Entity
> public class OtherEntity {
>     @Id
>     private String id;
>     @ManyToOne(fetch=FetchType.LAZY)
>     private Entity entity;
>      // ... getter and setter
> }
> {code}
> http://localhost:8080/Example.svc/Entity?$expand=OtherEntityDetails%2cOtherEntityDetails1
> {code}
> 16:31:20,579 ERROR [stderr] (default task-26) java.lang.ClassCastException: com.example.cloud.entities.OtherEntity_$$_jvst6ce_d6 cannot be cast to java.util.Collection
> 16:31:20,579 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.jpa.processor.core.callback.JPAExpandCallBack.retrieveFeedResult(JPAExpandCallBack.java:148)
> 16:31:20,579 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.core.ep.producer.AtomEntryEntityProducer.appendInlineFeed(AtomEntryEntityProducer.java:275)
> 16:31:20,579 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.core.ep.producer.AtomEntryEntityProducer.appendAtomNavigationLink(AtomEntryEntityProducer.java:241)
> 16:31:20,579 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.core.ep.producer.AtomEntryEntityProducer.appendAtomNavigationLinks(AtomEntryEntityProducer.java:222)
> 16:31:20,580 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.core.ep.producer.AtomEntryEntityProducer.append(AtomEntryEntityProducer.java:126)
> 16:31:20,580 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.core.ep.AtomEntityProvider.writeEntry(AtomEntityProvider.java:174)
> 16:31:20,580 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.core.ep.ProviderFacadeImpl.writeEntry(ProviderFacadeImpl.java:128)
> 16:31:20,580 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.api.ep.EntityProvider.writeEntry(EntityProvider.java:576)
> 16:31:20,580 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.jpa.processor.core.ODataJPAResponseBuilderDefault.build(ODataJPAResponseBuilderDefault.java:167)
> 16:31:20,580 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.jpa.processor.core.ODataJPAProcessorDefault.readEntity(ODataJPAProcessorDefault.java:82)
> 16:31:20,580 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.core.Dispatcher.dispatch(Dispatcher.java:87)
> 16:31:20,580 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.core.ODataRequestHandler.handle(ODataRequestHandler.java:129)
> 16:31:20,580 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.core.rest.ODataSubLocator.handle(ODataSubLocator.java:167)
> 16:31:20,581 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.core.rest.ODataSubLocator.handleGet(ODataSubLocator.java:58)
> 16:31:20,581 ERROR [stderr] (default task-26) 	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
> 16:31:20,581 ERROR [stderr] (default task-26) 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 16:31:20,581 ERROR [stderr] (default task-26) 	at java.lang.reflect.Method.invoke(Method.java:606)
> 16:31:20,581 ERROR [stderr] (default task-26) 	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:137)
> 16:31:20,581 ERROR [stderr] (default task-26) 	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:296)
> 16:31:20,581 ERROR [stderr] (default task-26) 	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:250)
> 16:31:20,581 ERROR [stderr] (default task-26) 	at org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:140)
> 16:31:20,581 ERROR [stderr] (default task-26) 	at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:103)
> 16:31:20,581 ERROR [stderr] (default task-26) 	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356)
> 16:31:20,582 ERROR [stderr] (default task-26) 	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:179)
> 16:31:20,582 ERROR [stderr] (default task-26) 	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:220)
> 16:31:20,582 ERROR [stderr] (default task-26) 	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
> 16:31:20,582 ERROR [stderr] (default task-26) 	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
> 16:31:20,582 ERROR [stderr] (default task-26) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
> 16:31:20,582 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
> 16:31:20,582 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:130)
> 16:31:20,582 ERROR [stderr] (default task-26) 	at org.picketlink.authentication.web.AuthenticationFilter.doFilter(AuthenticationFilter.java:170)
> 16:31:20,582 ERROR [stderr] (default task-26) 	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)
> 16:31:20,583 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)
> 16:31:20,583 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85)
> 16:31:20,583 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61)
> 16:31:20,583 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
> 16:31:20,583 ERROR [stderr] (default task-26) 	at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
> 16:31:20,583 ERROR [stderr] (default task-26) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> 16:31:20,583 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
> 16:31:20,583 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56)
> 16:31:20,583 ERROR [stderr] (default task-26) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> 16:31:20,583 ERROR [stderr] (default task-26) 	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45)
> 16:31:20,584 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:63)
> 16:31:20,584 ERROR [stderr] (default task-26) 	at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58)
> 16:31:20,584 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70)
> 16:31:20,584 ERROR [stderr] (default task-26) 	at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76)
> 16:31:20,584 ERROR [stderr] (default task-26) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> 16:31:20,584 ERROR [stderr] (default task-26) 	at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
> 16:31:20,584 ERROR [stderr] (default task-26) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> 16:31:20,584 ERROR [stderr] (default task-26) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> 16:31:20,584 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:261)
> 16:31:20,585 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:247)
> 16:31:20,585 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:76)
> 16:31:20,585 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:166)
> 16:31:20,585 ERROR [stderr] (default task-26) 	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:197)
> 16:31:20,585 ERROR [stderr] (default task-26) 	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:759)
> 16:31:20,585 ERROR [stderr] (default task-26) 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> 16:31:20,585 ERROR [stderr] (default task-26) 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> 16:31:20,585 ERROR [stderr] (default task-26) 	at java.lang.Thread.run(Thread.java:745)
> 16:31:20,599 ERROR [stderr] (default task-26) java.lang.ClassCastException: com.example.cloud.entities.OtherEntity_$$_jvst6ce_d6 cannot be cast to java.util.Collection
> 16:31:20,599 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.jpa.processor.core.callback.JPAExpandCallBack.retrieveFeedResult(JPAExpandCallBack.java:148)
> 16:31:20,599 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.core.ep.producer.AtomEntryEntityProducer.appendInlineFeed(AtomEntryEntityProducer.java:275)
> 16:31:20,599 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.core.ep.producer.AtomEntryEntityProducer.appendAtomNavigationLink(AtomEntryEntityProducer.java:241)
> 16:31:20,599 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.core.ep.producer.AtomEntryEntityProducer.appendAtomNavigationLinks(AtomEntryEntityProducer.java:222)
> 16:31:20,600 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.core.ep.producer.AtomEntryEntityProducer.append(AtomEntryEntityProducer.java:126)
> 16:31:20,600 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.core.ep.AtomEntityProvider.writeEntry(AtomEntityProvider.java:174)
> 16:31:20,600 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.core.ep.ProviderFacadeImpl.writeEntry(ProviderFacadeImpl.java:128)
> 16:31:20,600 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.api.ep.EntityProvider.writeEntry(EntityProvider.java:576)
> 16:31:20,600 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.jpa.processor.core.ODataJPAResponseBuilderDefault.build(ODataJPAResponseBuilderDefault.java:167)
> 16:31:20,600 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.jpa.processor.core.ODataJPAProcessorDefault.readEntity(ODataJPAProcessorDefault.java:82)
> 16:31:20,600 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.core.Dispatcher.dispatch(Dispatcher.java:87)
> 16:31:20,600 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.core.ODataRequestHandler.handle(ODataRequestHandler.java:129)
> 16:31:20,600 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.core.rest.ODataSubLocator.handle(ODataSubLocator.java:167)
> 16:31:20,601 ERROR [stderr] (default task-26) 	at org.apache.olingo.odata2.core.rest.ODataSubLocator.handleGet(ODataSubLocator.java:58)
> 16:31:20,601 ERROR [stderr] (default task-26) 	at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
> 16:31:20,601 ERROR [stderr] (default task-26) 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 16:31:20,601 ERROR [stderr] (default task-26) 	at java.lang.reflect.Method.invoke(Method.java:606)
> 16:31:20,601 ERROR [stderr] (default task-26) 	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:137)
> 16:31:20,601 ERROR [stderr] (default task-26) 	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:296)
> 16:31:20,601 ERROR [stderr] (default task-26) 	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:250)
> 16:31:20,601 ERROR [stderr] (default task-26) 	at org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:140)
> 16:31:20,601 ERROR [stderr] (default task-26) 	at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:103)
> 16:31:20,601 ERROR [stderr] (default task-26) 	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356)
> 16:31:20,602 ERROR [stderr] (default task-26) 	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:179)
> 16:31:20,602 ERROR [stderr] (default task-26) 	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:220)
> 16:31:20,602 ERROR [stderr] (default task-26) 	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
> 16:31:20,602 ERROR [stderr] (default task-26) 	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
> 16:31:20,602 ERROR [stderr] (default task-26) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
> 16:31:20,602 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
> 16:31:20,602 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:130)
> 16:31:20,602 ERROR [stderr] (default task-26) 	at org.picketlink.authentication.web.AuthenticationFilter.doFilter(AuthenticationFilter.java:170)
> 16:31:20,602 ERROR [stderr] (default task-26) 	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)
> 16:31:20,603 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)
> 16:31:20,603 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85)
> 16:31:20,603 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61)
> 16:31:20,603 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
> 16:31:20,603 ERROR [stderr] (default task-26) 	at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
> 16:31:20,603 ERROR [stderr] (default task-26) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> 16:31:20,603 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
> 16:31:20,603 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56)
> 16:31:20,604 ERROR [stderr] (default task-26) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> 16:31:20,604 ERROR [stderr] (default task-26) 	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45)
> 16:31:20,604 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:63)
> 16:31:20,604 ERROR [stderr] (default task-26) 	at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58)
> 16:31:20,604 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70)
> 16:31:20,604 ERROR [stderr] (default task-26) 	at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76)
> 16:31:20,604 ERROR [stderr] (default task-26) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> 16:31:20,605 ERROR [stderr] (default task-26) 	at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
> 16:31:20,605 ERROR [stderr] (default task-26) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> 16:31:20,605 ERROR [stderr] (default task-26) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> 16:31:20,605 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:261)
> 16:31:20,605 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:247)
> 16:31:20,605 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:76)
> 16:31:20,605 ERROR [stderr] (default task-26) 	at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:166)
> 16:31:20,605 ERROR [stderr] (default task-26) 	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:197)
> 16:31:20,605 ERROR [stderr] (default task-26) 	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:759)
> 16:31:20,606 ERROR [stderr] (default task-26) 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> 16:31:20,606 ERROR [stderr] (default task-26) 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> 16:31:20,606 ERROR [stderr] (default task-26) 	at java.lang.Thread.run(Thread.java:745)
> {code}
> I will open a pull request on github because we already have a patch.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)