8 Replies Latest reply on Jun 30, 2007 10:18 AM by Samuel Scheidegger

    DataModel and Row Unavailable

    Samuel Scheidegger Newbie

      I have some problems in using the datamodel.
      I have two Tables on my page and i add entries from one table to the 2nd, which works fine.
      After adding i should have the possibility to remove entries again from the 2nd table, which works, but only with the first entry..
      If i alway delete the first entry until the table is empty this is again no problem, but if i like to delete an entry in the middle or at the end, I get an exception saying the row is unavailable..



      My Bean:

      @Stateful
      @Scope(ScopeType.CONVERSATION)
      @Name("caseAction")
      public class CaseAction implements ICase,Serializable{
      
      
       @PersistenceContext
       private EntityManager em;
      
       @In
       private User authUser;
      
       @Logger
       private Log log;
      
       @In
       private FacesMessages facesMessages;
      
       private PersistentFacesState state;
      
       @In(create=true)
       @Out(required=false)
       private Patient patient;
      
       @Out(value="selectedMedCase",required=false)
       MedCase mcase;
      
       @In(create=true)
       @Out(required=false)
       private CaseType caseType;
      
      
       @DataModel(value="professionals")
       private List<HealthProfessional> professionals;
       @DataModelSelection(value="professionals")
       @Out(required=false)
       private HealthProfessional selectedProfessional;
      
       @DataModel(value="searchProfessionals")
       private List<HealthProfessional> searchProfessionals;
       @DataModelSelection(value="searchProfessionals")
       @Out(required=false)
       private HealthProfessional selectedSearchedProfessionals;
      
       private String description;
      
      
      
       public CaseAction(){
      
       }
      
       @Begin(join=true)
       @Factory("searchProfessionals")
       public void initSearchProfessionals(){
       searchProfessionals = em.createQuery("FROM HealthProfessional hp " +
       "order by hp.lastname").getResultList();
       professionals = new ArrayList<HealthProfessional>();
       }
      
      
       @End
       public String create(){
      
       log.info("create")
      
       return "/protected/prof/profMyCases.seam";
       }
      
      
      
       public void deleteProf(){
       professionals.remove(selectedProfessional);
       state = PersistentFacesState.getInstance();
      
       log.info("delete Health Professional");
      
       }
      
       public void addProf(){
      
       if(!professionals.contains(selectedSearchedProfessionals)){
       professionals.add(selectedSearchedProfessionals);
       }
      
       log.info("added Health Professional: #{selectedSearchedProfessionals}");
       }
      
       public void patientChanged(ValueChangeEvent event){
       log.info("patient change event");
       }
      
       public List<Patient> getMyPatients(){
       HealthProfessional prof = (HealthProfessional)authUser;
      
       List<Patient> patients;
      
      
       patients = em.createNamedQuery("findAllPatientOfProfessional")
       .setParameter("prof", prof).getResultList();
      
       return patients;
       }
      
       public List<CaseType> getCaseTypes(){
      
       List<CaseType> types;
      
       types = em.createNamedQuery("findAllCaseTypes").getResultList();
      
       return types;
       }
      
       public String getDescription(){
       return description;
       }
      
       public void setDescription(String description){
       this.description = description;
       }
      
      
      
       @Destroy @Remove
       public void destroy(){
      
       }
      
      }
      


      My website:
      <?xml version="1.0" encoding="ISO-8859-1" ?>
      <ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
       xmlns:jsp="http://java.sun.com/JSP/Page"
       xmlns:f="http://java.sun.com/jsf/core"
       xmlns:h="http://java.sun.com/jsf/html"
       xmlns:ice="http://www.icesoft.com/icefaces/component"
       xmlns:s="http://jboss.com/products/seam/taglib"
       template="../../layout/template.jsp">
      
       <ui:define name="content">
      
      
       <ice:panelAccordion expanded="true" styleClass="accordion">
       <f:facet name="header">
       <ice:outputText value="#{messages['profNewCase.title']}" />
       </f:facet>
      
       <ice:form id="form">
      
      
       <ice:panelGrid columns="3">
      
       <ice:outputText value="#{messages['profNewCase.patient']}" />
       <ice:outputText value="#{messages['profNewCase.description']}" />
       <ice:outputText value="#{messages['profNewCase.type']}" />
      
       <h:selectOneMenu id="patientListbox" required="true"
       value="#{patient}" >
      
      
       <s:selectItems value="#{caseAction.myPatients}" var="patient"
       label="#{patient.firstname} #{patient.lastname}"
       noSelectionLabel="#{messages['profNewCase.noSelection']}"/>
       <s:convertEntity />
      
       </h:selectOneMenu>
      
       <ice:inputText required="true" value="#{caseAction.description}" />
      
      
      
       <h:selectOneMenu id="typeListbox" required="true"
       value="#{caseType}">
      
      
       <s:selectItems value="#{caseAction.caseTypes}" var="caseType"
       label="#{caseType.type}"
       noSelectionLabel="#{messages['profNewCase.noSelection']}"/>
       <s:convertEntity />
      
       </h:selectOneMenu>
      
      
       </ice:panelGrid>
      
       <ice:outputText value="#{messages['profNewCase.notAdded']}"
       rendered="#{professionals != null and professionals.rowCount==0}"/>
      
       <ice:dataTable var="prof" value="#{professionals}"
       sortColumn="#{list.sort}" sortAscending="#{list.ascending}"
       scrollable="#{table.scrollable}"
       scrollHeight="#{table.scrollableHeight}"
       columnWidths="150px,150px,150px,150px"
       rendered="#{professionals.rowCount>0}">
      
       <f:facet name="header">
       <ice:outputText value="#{messages['profNewCase.responsibleProf']}" />
       </f:facet>
      
      
       <ice:column>
       <f:facet name="header">
       <ice:outputText value="#{messages['profNewCase.firstname']}" />
       </f:facet>
       <ice:outputText value="#{prof.firstname}" />
      
       </ice:column>
      
       <ice:column>
       <f:facet name="header">
       <ice:outputText value="#{messages['profNewCase.lastname']}" />
       </f:facet>
       <ice:outputText value="#{prof.lastname}" />
      
       </ice:column>
      
       <ice:column>
       <f:facet name="header">
       <ice:outputText value="#{messages['profNewCase.state']}" />
       </f:facet>
       <ice:outputText value="#{prof.state}" />
      
       </ice:column>
      
       <ice:column>
       <f:facet name="header">
       <ice:outputText value="#{messages['profNewCase.edit']}" />
       </f:facet>
       <s:link value="[delete]" action="#{caseAction.deleteProf}" />
      
       </ice:column>
      
       </ice:dataTable>
      
      
       <br />
       <ice:commandButton type="submit" value="#{messages['profNewCase.create']}"
       action="#{caseAction.create}" />
       </ice:form>
      
       <ice:form id="searchForm">
      
      
       <ice:panelAccordion expanded="true" styleClass="accordion">
       <f:facet name="header">
       <ice:outputText value="#{messages['profNewCase.search']}" />
       </f:facet>
      
      
       <ice:outputText value="No Health Professionals Found"
       rendered="#{searchProfessionals != null and searchProfessionals.rowCount==0}"/>
      
       <ice:dataTable var="sProfs" value="#{searchProfessionals}"
       sortColumn="#{list.sort}" sortAscending="#{list.ascending}"
       scrollable="#{table.scrollable}"
       scrollHeight="#{table.scrollableHeight}"
       columnWidths="150px,150px,150px,150px"
       rendered="#{searchProfessionals.rowCount>0}">
      
      
      
      
      
       <ice:column>
       <f:facet name="header">
       <ice:outputText value="#{messages['profNewCase.firstname']}" />
       </f:facet>
       <ice:outputText value="#{sProfs.firstname}" />
      
       </ice:column>
      
       <ice:column>
       <f:facet name="header">
       <ice:outputText value="#{messages['profNewCase.lastname']}" />
       </f:facet>
       <ice:outputText value="#{sProfs.lastname}" />
      
       </ice:column>
      
       <ice:column>
       <f:facet name="header">
       <ice:outputText value="#{messages['profNewCase.edit']}" />
       </f:facet>
       <s:link value="[add]" action="#{caseAction.addProf}" />
      
       </ice:column>
      
       </ice:dataTable>
      
       </ice:panelAccordion>
       </ice:form>
      
      
       </ice:panelAccordion>
      
      
       </ui:define>
      </ui:composition>
      


        • 1. Re: DataModel and Row Unavailable
          Daniel Kane Novice

          Recently solved the same problem , thanks to this forum .
          The situation was like your's : adding rows from one table to another (shopping cart) and then deleting rows from shopping cart.

          http://www.jboss.com/index.html?module=bb&op=viewtopic&t=111675

          ( the initial request is about another problem, but starting from 4th message the talk is about "row is unavailable" )

          Good luck.

          • 2. Re: DataModel and Row Unavailable
            Samuel Scheidegger Newbie

            Yes, i read your problem already. But it seems that my problem is something else..
            I have the in the attribute rendered the rowCount-Thing already built in and I even get the exception if I don't add the rendered-attribute.

            • 3. Re: DataModel and Row Unavailable
              Samuel Scheidegger Newbie

              I found the problem, but didn't solve it yet..
              The problem is in the following part and if i comment this part, the thing with de table is working correctly, but now I have to find a solution for my new problem :-)

               <ice:panelGrid columns="3">
              
               <ice:outputText value="#{messages['profNewCase.patient']}" />
               <ice:outputText value="#{messages['profNewCase.description']}" />
               <ice:outputText value="#{messages['profNewCase.type']}" />
              
               <h:selectOneMenu id="patientListbox" required="true"
               value="#{patient}" >
              
              
               <s:selectItems value="#{caseAction.myPatients}" var="patient"
               label="#{patient.firstname} #{patient.lastname}"
               noSelectionLabel="#{messages['profNewCase.noSelection']}"/>
               <s:convertEntity />
              
               </h:selectOneMenu>
              
               <ice:inputText required="true" value="#{caseAction.description}" />
              
              
              
               <h:selectOneMenu id="typeListbox" required="true"
               value="#{caseType}">
              
              
               <s:selectItems value="#{caseAction.caseTypes}" var="caseType"
               label="#{caseType.type}"
               noSelectionLabel="#{messages['profNewCase.noSelection']}"/>
               <s:convertEntity />
              
               </h:selectOneMenu>
              
              
               </ice:panelGrid>
              


              • 4. Re: DataModel and Row Unavailable
                Samuel Scheidegger Newbie

                I'm still on the same problem and I just can't understand it. I can't see why there should be a relationship between a click on the link from the datamodel and the selectOneMenu..

                I would be really glad, if someone can help me!

                • 5. Re: DataModel and Row Unavailable
                  Ivan Tufegdzic Newbie

                  I'm not sure, but try to change value in selectItems in value with Out annotations (and factory method) and var from selectItems different with value of selectOneMenu.
                  patient != patient

                  • 6. Re: DataModel and Row Unavailable
                    Samuel Scheidegger Newbie

                    Unfortunately this did not solve the problem.
                    Maybe I should post once the exact exception:

                    javax.faces.el.EvaluationException: /protected/prof/profNewCase.jsp @33,67 value="#{caseAction.myPatients}": Exception getting value of property myPatients of base of type : org.javassist.tmp.java.lang.Object_$$_javassist_17
                     at com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:60)
                     at javax.faces.component.UISelectItems.getValue(UISelectItems.java:55)
                     at org.jboss.seam.ui.UISelectItems.getValue(UISelectItems.java:166)
                     at com.icesoft.faces.renderkit.dom_html_basic.MenuRenderer.getSelectItems(MenuRenderer.java:570)
                     at com.icesoft.faces.renderkit.dom_html_basic.MenuRenderer.countSelectOptionsRecursive(MenuRenderer.java:401)
                     at com.icesoft.faces.renderkit.dom_html_basic.MenuRenderer.renderSelect(MenuRenderer.java:345)
                     at com.icesoft.faces.renderkit.dom_html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:111)
                     at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:536)
                     at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.encodeParentAndChildren(DomBasicRenderer.java:351)
                     at com.icesoft.faces.renderkit.dom_html_basic.GridRenderer.encodeChildren(GridRenderer.java:197)
                     at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:524)
                     at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.encodeParentAndChildren(DomBasicRenderer.java:341)
                     at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.encodeParentAndChildren(DomBasicRenderer.java:347)
                     at com.icesoft.faces.component.accordion.PanelAccordionRenderer.encodeChildren(PanelAccordionRenderer.java:207)
                     at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:524)
                     at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:513)
                     at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:517)
                     at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:517)
                     at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:517)
                     at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:517)
                     at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:517)
                     at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:517)
                     at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:517)
                     at com.icesoft.faces.facelets.D2DFaceletViewHandler.renderResponse(D2DFaceletViewHandler.java:301)
                     at com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:150)
                     at org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
                     at org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:229)
                     at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384)
                     at com.icesoft.faces.webapp.http.core.PageServer$1.respond(PageServer.java:26)
                     at com.icesoft.faces.webapp.http.servlet.ServletRequestResponse.respondWith(ServletRequestResponse.java:125)
                     at com.icesoft.faces.webapp.http.core.PageServer.service(PageServer.java:31)
                     at com.icesoft.faces.webapp.http.servlet.BasicAdaptingServlet.service(BasicAdaptingServlet.java:16)
                     at com.icesoft.faces.webapp.http.servlet.SingleViewServlet.service(SingleViewServlet.java:48)
                     at com.icesoft.faces.webapp.http.servlet.PathDispatcher$Matcher.serviceOnMatch(PathDispatcher.java:52)
                     at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:29)
                     at com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.service(MainSessionBoundServlet.java:89)
                     at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:35)
                     at com.icesoft.faces.webapp.http.servlet.PathDispatcher$Matcher.serviceOnMatch(PathDispatcher.java:52)
                     at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:29)
                     at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:59)
                     at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
                     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
                     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                     at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:63)
                     at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
                     at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                     at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:60)
                     at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                     at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
                     at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                     at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:79)
                     at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                     at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:84)
                     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
                     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                     at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
                     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
                     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                     at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
                     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
                     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
                     at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
                     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
                     at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
                     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
                     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
                     at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
                     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
                     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
                     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
                     at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
                     at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
                     at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
                     at java.lang.Thread.run(Thread.java:619)
                    Caused by: javax.faces.el.EvaluationException: Bean: org.javassist.tmp.java.lang.Object_$$_javassist_17, property: myPatients
                     at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:442)
                     at org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:82)
                     at com.sun.facelets.el.LegacyELContext$LegacyELResolver.getValue(LegacyELContext.java:141)
                     at com.sun.el.parser.AstValue.getValue(AstValue.java:125)
                     at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:195)
                     at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
                     at com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:56)
                     ... 75 more
                    Caused by: java.lang.reflect.InvocationTargetException
                     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:597)
                     at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:438)
                     ... 81 more
                    Caused by: javax.ejb.EJBTransactionRolledbackException: java.lang.IllegalArgumentException: row is unavailable
                     at org.jboss.ejb3.tx.Ejb3TxPolicy.handleInCallerTx(Ejb3TxPolicy.java:93)
                     at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:130)
                     at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:195)
                     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                     at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
                     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                     at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:83)
                     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                     at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
                     at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:102)
                     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                     at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
                     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                     at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
                     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                     at org.jboss.ejb3.stateful.StatefulContainer.localInvoke(StatefulContainer.java:203)
                     at org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:98)
                     at $Proxy204.getMyPatients(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:597)
                     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.intercept.RootInterceptor.invoke(RootInterceptor.java:103)
                     at org.jboss.seam.intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:50)
                     at org.javassist.tmp.java.lang.Object_$$_javassist_17.getMyPatients(Object_$$_javassist_17.java)
                     ... 86 more
                    Caused by: java.lang.IllegalArgumentException: row is unavailable
                     at javax.faces.model.ListDataModel.getRowData(ListDataModel.java:63)
                     at org.jboss.seam.databinding.DataModelBinder.getSelection(DataModelBinder.java:69)
                     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.ManagedEntityIdentityInterceptor.aroundInvoke(ManagedEntityIdentityInterceptor.java:37)
                     at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
                     at org.jboss.seam.interceptors.ConversationInterceptor.aroundInvoke(ConversationInterceptor.java:63)
                     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.GeneratedMethodAccessor300.invoke(Unknown Source)
                     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                     at java.lang.reflect.Method.invoke(Method.java:597)
                     at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118)
                     at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
                     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                     at org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor.invoke(ExtendedPersistenceContextPropagationInterceptor.java:57)
                     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                     at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
                     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                     at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:46)
                     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                     at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126)
                     ... 115 more
                    21:16:16,832 ERROR [ExceptionFilter] uncaught exception
                    javax.faces.FacesException: Problem in renderResponse: /protected/prof/profNewCase.jsp @33,67 value="#{caseAction.myPatients}": Exception getting value of property myPatients of base of type : org.javassist.tmp.java.lang.Object_$$_javassist_17
                     at com.icesoft.faces.facelets.D2DFaceletViewHandler.renderResponse(D2DFaceletViewHandler.java:308)
                     at com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:150)
                     at org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
                     at org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:229)
                     at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384)
                     at com.icesoft.faces.webapp.http.core.PageServer$1.respond(PageServer.java:26)
                     at com.icesoft.faces.webapp.http.servlet.ServletRequestResponse.respondWith(ServletRequestResponse.java:125)
                     at com.icesoft.faces.webapp.http.core.PageServer.service(PageServer.java:31)
                     at com.icesoft.faces.webapp.http.servlet.BasicAdaptingServlet.service(BasicAdaptingServlet.java:16)
                     at com.icesoft.faces.webapp.http.servlet.SingleViewServlet.service(SingleViewServlet.java:48)
                     at com.icesoft.faces.webapp.http.servlet.PathDispatcher$Matcher.serviceOnMatch(PathDispatcher.java:52)
                     at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:29)
                     at com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.service(MainSessionBoundServlet.java:89)
                     at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:35)
                     at com.icesoft.faces.webapp.http.servlet.PathDispatcher$Matcher.serviceOnMatch(PathDispatcher.java:52)
                     at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:29)
                     at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:59)
                     at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
                     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
                     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                     at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:63)
                     at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
                     at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                     at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:60)
                     at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                     at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
                     at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                     at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:79)
                     at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                     at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:84)
                     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
                     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                     at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
                     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
                     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                     at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
                     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
                     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
                     at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
                     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
                     at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
                     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
                     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
                     at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
                     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
                     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
                     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
                     at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
                     at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
                     at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
                     at java.lang.Thread.run(Thread.java:619)
                    Caused by: javax.faces.el.EvaluationException: /protected/prof/profNewCase.jsp @33,67 value="#{caseAction.myPatients}": Exception getting value of property myPatients of base of type : org.javassist.tmp.java.lang.Object_$$_javassist_17
                     at com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:60)
                     at javax.faces.component.UISelectItems.getValue(UISelectItems.java:55)
                     at org.jboss.seam.ui.UISelectItems.getValue(UISelectItems.java:166)
                     at com.icesoft.faces.renderkit.dom_html_basic.MenuRenderer.getSelectItems(MenuRenderer.java:570)
                     at com.icesoft.faces.renderkit.dom_html_basic.MenuRenderer.countSelectOptionsRecursive(MenuRenderer.java:401)
                     at com.icesoft.faces.renderkit.dom_html_basic.MenuRenderer.renderSelect(MenuRenderer.java:345)
                     at com.icesoft.faces.renderkit.dom_html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:111)
                     at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:536)
                     at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.encodeParentAndChildren(DomBasicRenderer.java:351)
                     at com.icesoft.faces.renderkit.dom_html_basic.GridRenderer.encodeChildren(GridRenderer.java:197)
                     at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:524)
                     at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.encodeParentAndChildren(DomBasicRenderer.java:341)
                     at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.encodeParentAndChildren(DomBasicRenderer.java:347)
                     at com.icesoft.faces.component.accordion.PanelAccordionRenderer.encodeChildren(PanelAccordionRenderer.java:207)
                     at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:524)
                     at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:513)
                     at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:517)
                     at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:517)
                     at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:517)
                     at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:517)
                     at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:517)
                     at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:517)
                     at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:517)
                     at com.icesoft.faces.facelets.D2DFaceletViewHandler.renderResponse(D2DFaceletViewHandler.java:301)
                     ... 52 more
                    Caused by: javax.faces.el.EvaluationException: Bean: org.javassist.tmp.java.lang.Object_$$_javassist_17, property: myPatients
                     at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:442)
                     at org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:82)
                     at com.sun.facelets.el.LegacyELContext$LegacyELResolver.getValue(LegacyELContext.java:141)
                     at com.sun.el.parser.AstValue.getValue(AstValue.java:125)
                     at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:195)
                     at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
                     at com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:56)
                     ... 75 more
                    Caused by: java.lang.reflect.InvocationTargetException
                     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:597)
                     at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:438)
                     ... 81 more
                    Caused by: javax.ejb.EJBTransactionRolledbackException: java.lang.IllegalArgumentException: row is unavailable
                     at org.jboss.ejb3.tx.Ejb3TxPolicy.handleInCallerTx(Ejb3TxPolicy.java:93)
                     at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:130)
                     at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:195)
                     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                     at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
                     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                     at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:83)
                     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                     at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
                     at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:102)
                     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                     at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
                     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                     at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
                     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                     at org.jboss.ejb3.stateful.StatefulContainer.localInvoke(StatefulContainer.java:203)
                     at org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:98)
                     at $Proxy204.getMyPatients(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:597)
                     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.intercept.RootInterceptor.invoke(RootInterceptor.java:103)
                     at org.jboss.seam.intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:50)
                     at org.javassist.tmp.java.lang.Object_$$_javassist_17.getMyPatients(Object_$$_javassist_17.java)
                     ... 86 more
                    Caused by: java.lang.IllegalArgumentException: row is unavailable
                     at javax.faces.model.ListDataModel.getRowData(ListDataModel.java:63)
                     at org.jboss.seam.databinding.DataModelBinder.getSelection(DataModelBinder.java:69)
                     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.ManagedEntityIdentityInterceptor.aroundInvoke(ManagedEntityIdentityInterceptor.java:37)
                     at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
                     at org.jboss.seam.interceptors.ConversationInterceptor.aroundInvoke(ConversationInterceptor.java:63)
                     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.GeneratedMethodAccessor300.invoke(Unknown Source)
                     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                     at java.lang.reflect.Method.invoke(Method.java:597)
                     at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118)
                     at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
                     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                     at org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor.invoke(ExtendedPersistenceContextPropagationInterceptor.java:57)
                     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                     at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
                     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                     at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:46)
                     at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                     at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126)
                     ... 115 more
                    


                    • 7. Re: DataModel and Row Unavailable
                      Jason Qin Newbie

                      I have the same puzzle in messages example.

                      I add a property 'title' and it's getters/setters in MessageManagerBean.
                      I add a line in messages.jsp like following:
                      <h:outputText value="#{messageManager.title}" />
                      And the line should be in front of <h:dataTable>.

                      Is there anyone have a test and help up?Thanks!

                      • 8. Re: DataModel and Row Unavailable
                        Samuel Scheidegger Newbie

                        Unbelievable Seam makes developers creative :-)
                        I soved my problem by writing the panelgrid under the first dataTable and now everything just works fine.. Dont's ask me why, but it works.