[jboss-user] [JBoss Seam] - @DataModelSelection and ClassCastException
yohann49
do-not-reply at jboss.com
Thu Jul 26 12:31:14 EDT 2007
Hello everybody...
I'm stuck for a couple of days with an error that makes me becoming crazy !!!
I have an .xhtml page (i work with facelets) which code is :
| <h:dataTable id="lines" value="#{lines}" var="line" rendered="#{lines.size>0}">
| <h:column>
| <f:facet name="header">#{messages['Line']}</f:facet>
|
| <s:link action="#{LineManager.selectLine(line.lineId)}" value="#{line.lineId}" propagation="join"/>
| </h:column>
| <h:column>
| <f:facet name="header">#{messages['Product']}</f:facet>
| #{line.productId.prodName}
| </h:column>
| </h:dataTable>
|
My LineManager is coded as below:
| @Stateful
| @Name("LineManager")
| @Scope(SESSION)
| public class LineManager implements LineManagerLocal, Serializable {
|
| @In
| private EntityManager em;
|
| @DataModel("lines")
| List<OrderLine> lines;
| @DataModelSelection("lines")
| private OrderLine currentOrderLine;
|
|
| @Out
| private Order myOrder;
|
| @Factory(value="lines",scope=SESSION)
| public List<OrderLine> findlines(){
|
| return myOrder.getOrderLines();
|
| }
|
| @Factory(value="servs",scope=SESSION)
| public List<Server> searchServers(){
|
| return currentOrderLine.getServers();
|
| }
|
| @Begin(join=true)
| public void viewParameters(Order order){
| myOrder=em.merge(order);
| System.out.println("on rentre dans le line manager");
| }
|
| public List<OrderLine> getLines(){
| return lines ;
| }
|
| @Begin(nested=true)
| public void selectLine(Long id){
| currentOrderLine=em.find(OrderLine.class,id);
| }
|
|
| public OrderLine getCurrentOrderLine() {
| return currentOrderLine;
|
| }
|
|
| public void setCurrentOrderLine(OrderLine currentOrderLine) {
| this.currentOrderLine = currentOrderLine;
| }
|
|
| @Remove @Destroy
| public void destroy(){
| }
|
| public Order getMyOrder() {
| return myOrder;
| }
|
| public void setMyOrder(Order myOrder) {
| this.myOrder = myOrder;
| }
| }
|
When I click on an OrderLine on the page, i get an exception
I show you the StackTrace :
|
| An exception was thrown during an ejb invocation on [LineManager]
| javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested exception is: java.lang.ClassCastException: org.hibernate.collection.PersistentBag
| java.lang.ClassCastException: org.hibernate.collection.PersistentBag
| at org.jboss.seam.databinding.DataModelBinder.getSelection(DataModelBinder.java:19)
| at org.jboss.seam.Component.injectDataModelSelection(Component.java:1274)
| at org.jboss.seam.Component.injectDataModelSelections(Component.java:1254)
| at org.jboss.seam.Component.inject(Component.java:1196)
| at org.jboss.seam.interceptors.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
| at org.jboss.seam.interceptors.ConversationInterceptor.aroundInvoke(ConversationInterceptor.java:54)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
| at org.jboss.seam.interceptors.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:27)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
| at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103)
| at org.jboss.seam.intercept.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:53)
| 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 com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:560)
| at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:470)
| at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:192)
| at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3922)
| at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:184)
| at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:70)
| at $Proxy656.selectLine(Unknown Source)
| 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.jboss.seam.util.Reflections.invoke(Reflections.java:20)
| at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
| at org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:72)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:57)
| at org.jboss.seam.interceptors.RemoveInterceptor.aroundInvoke(RemoveInterceptor.java:40)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
| at org.jboss.seam.interceptors.SynchronizationInterceptor.aroundInvoke(SynchronizationInterceptor.java:31)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
| at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103)
| at org.jboss.seam.intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:50)
| at org.javassist.tmp.java.lang.Object_$$_javassist_41.selectLine(Object_$$_javassist_41.java)
| 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 com.sun.el.parser.AstValue.invoke(AstValue.java:174)
| at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:284)
| at com.sun.faces.application.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
| at org.jboss.seam.actionparam.ActionParamBindingHelper.invokeTheExpression(ActionParamBindingHelper.java:58)
| at org.jboss.seam.actionparam.ActionParamMethodBinding.invoke(ActionParamMethodBinding.java:75)
| at org.jboss.seam.core.Expressions$2.invoke(Expressions.java:148)
| at org.jboss.seam.core.Pages.callAction(Pages.java:499)
| at org.jboss.seam.core.Pages.enterPage(Pages.java:282)
| at org.jboss.seam.jsf.AbstractSeamPhaseListener.enterPage(AbstractSeamPhaseListener.java:276)
| at org.jboss.seam.jsf.AbstractSeamPhaseListener.beforeRender(AbstractSeamPhaseListener.java:214)
| at org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:56)
| at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:222)
| at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
| at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
| at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:398)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
| at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:217)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
| at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:217)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
| at org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
| at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:217)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
| at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:258)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:189)
| at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611)
| at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564)
| at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:81)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:193)
| at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611)
| at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564)
| at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:558)
| at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
| at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611)
| at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564)
| at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:558)
| at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067)
| at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:255)
| at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:618)
| at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:549)
| at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:790)
| at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:326)
| at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:248)
| at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:199)
| at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
| at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:93)
| javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested exception is: java.lang.ClassCastException: org.hibernate.collection.PersistentBag
| at com.sun.ejb.containers.BaseContainer.checkExceptionClientTx(BaseContainer.java:3672)
| at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3520)
| at com.sun.ejb.containers.StatefulSessionContainer.postInvokeTx(StatefulSessionContainer.java:1360)
| at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1305)
| at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1267)
| at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:192)
| at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:70)
| at $Proxy656.selectLine(Unknown Source)
| 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.jboss.seam.util.Reflections.invoke(Reflections.java:20)
| at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
| at org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:72)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:57)
| at org.jboss.seam.interceptors.RemoveInterceptor.aroundInvoke(RemoveInterceptor.java:40)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
| at org.jboss.seam.interceptors.SynchronizationInterceptor.aroundInvoke(SynchronizationInterceptor.java:31)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
| at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103)
| at org.jboss.seam.intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:50)
| at org.javassist.tmp.java.lang.Object_$$_javassist_41.selectLine(Object_$$_javassist_41.java)
| 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 com.sun.el.parser.AstValue.invoke(AstValue.java:174)
| at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:284)
| at com.sun.faces.application.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
| at org.jboss.seam.actionparam.ActionParamBindingHelper.invokeTheExpression(ActionParamBindingHelper.java:58)
| at org.jboss.seam.actionparam.ActionParamMethodBinding.invoke(ActionParamMethodBinding.java:75)
| at org.jboss.seam.core.Expressions$2.invoke(Expressions.java:148)
| at org.jboss.seam.core.Pages.callAction(Pages.java:499)
| at org.jboss.seam.core.Pages.enterPage(Pages.java:282)
| at org.jboss.seam.jsf.AbstractSeamPhaseListener.enterPage(AbstractSeamPhaseListener.java:276)
| at org.jboss.seam.jsf.AbstractSeamPhaseListener.beforeRender(AbstractSeamPhaseListener.java:214)
| at org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:56)
| at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:222)
| at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
| at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
| at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:398)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
| at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:217)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
| at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:217)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
| at org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
| at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:217)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
| at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:258)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:189)
| at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611)
| at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564)
| at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:81)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:193)
| at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611)
| at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564)
| at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:558)
| at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
| at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611)
| at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564)
| at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:558)
| at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067)
| at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:255)
| at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:618)
| at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:549)
| at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:790)
| at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:326)
| at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:248)
| at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:199)
| at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
| at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:93)
|
I debugged this with NetBeans and went into injectDataModelSelection() which is in Component.java (package org.jboss.seam). It works just fine until it arrives on the line
Object selectedIndex = wrapper.getSelection(dataModelAnn, dataModel);
|
Trying to step into this line, it gets directly into BijectionInterceptor.java and crashes with the exception above. It seems that it never enters DataModelBinder.java (i put a breakpoint on the first line of getSelection(), but it crashed before reaching this breakpoint)
This is just to explain where it seems to crash...
Just another thing, it behaves exactly the same even if currentOrderLine is not annotate with @DataModelSelection (you can see that i try to pass the llineId in the selectline() method).
I hope somebody could help me a bit
Thanks for having reached this point in your reading
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4067912#4067912
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4067912
More information about the jboss-user
mailing list