7 Replies Latest reply on Feb 20, 2009 4:52 PM by rschoeler

    Doubled call of Bean-Method during rerendering - bug?

      Hi folks, I've a problem during AJAX-ing. Excuse if I've used some attributes in the wrong way - but the pdf-doc is sometimes not as clear, that I'am able to understand it 100percently. It's more try&error working.....8-}

      Description:
      I've a rich:comboBox and a rich:dataTable with one rich:column with an a4j:commandLink inside, and rerendering stuff.

      If I change selection of the rich:comboBox, I can see in the logfile that the Bean-Method getResult is called twice. I've tried a lot of ways with a4jregion, ajaxSingle="true",limitToList="true" and other possibilities I've found to avoid this - because this had some side-effects for my implementation.

      This is a bug in my understanding, and has forced me to insert a workaround in my code to ensure, that this doubled calling doesn't do wrong.

      My Questions are:
      Is there a doubled AJAX-Call during rerendering?
      How can I trace such behaviour by myself (with a4j:log) ?
      Is this really a AJAX-bug?

      My Environment:
      - jdk1.6.0_11
      - RF 3.3.0 GA
      - MyFace 1.2.5
      - Apache Tomcat/6.0.16 (Standalone)

      <a4j:region id="outside" renderRegionOnly="true">
      
       <a4j:region id="combo_region">
       <h:panelGrid id="id_combo" columns="3" styleClass="standardTableBordered">
       <h:outputLabel value="#{msgs.mapping_identifier_label}:" for="idList" />
       <rich:comboBox id="idList" value="#{mappingHandler.selectedIdentifier}" suggestionValues="#{mappingHandler.allIdentifiers}"
       directInputSuggestions="true" defaultLabel="#{msgs.mapping_combo_default}">
       <a4j:support event="onselect" reRender="list_of_mappings" ajaxSingle="true" limitToList="true"/>
       </rich:comboBox>
       <rich:message for="idList" />
       </h:panelGrid>
       </a4j:region> <!-- id is combo_region-->
      
       <br/>
      
       <a4j:region id="table_region">
       <rich:dataTable id="list_of_mappings" rows="10"
       onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
       onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"
       cellpadding="0" cellspacing="0"
       width="1000" border="0" var="record" value="#{mappingHandler.result}">
      
       ....
      
       <rich:column filterBy="#{record.value}" filterEvent="onkeyup" sortBy="#{record.value}">
       <f:facet name="header">
       <h:outputText value="#{msgs.mapping_value}" />
       </f:facet>
       <h:inputText id="mapping_value" value="#{record.value}" label="#{msgs.mapping_value}" required="true">
       <f:validateLength minimum="1" />
       </h:inputText>
       </rich:column>
       ...
      
       <rich:column>
       <f:facet name="header">
       <h:outputText value="#{msgs.mapping_actions}" />
       </f:facet>
       <a4j:commandLink id="deletelink" action="#{mappingHandler.deleteMapping}" reRender="list_of_mappings"
       onclick="if(!confirm('#{msgs.js_delete_mapping}')){return false;};" ajaxSingle="true" limitToList="true">
       <h:graphicImage value="/images/delete.gif" style="border:0"/>
       </a4j:commandLink>
       <rich:toolTip for="deletelink" value="#{msgs.tooltip_delete_mapping}"/>
       </rich:column>
       </rich:dataTable>
       <rich:datascroller align="left" for="list_of_mappings" id="mapping_scroller" rendered="#{mappingHandler.resultModel.rowCount > 10}" />
       </a4j:region> <!-- id is table_region-->
      
       <br/>
       <a4j:region id="button_region">
       <h:panelGrid id="buttons" columns="2" styleClass="standardTableBordered" id="button_grid">
       <a4j:commandButton value="#{msgs.button_label_new_mapping}" action="#{mappingHandler.createNewMapping}"
       reRender="list_of_mappings,button_grid" />
       <h:commandButton value="#{msgs.button_label_save}" action="#{mappingHandler.save}" />
       </h:panelGrid>
       </a4j:region>
      
       </a4j:region> <!-- id is outside -->
      


      15.02.2009 20:10:04 core.hibernate.HibernateFilter doFilter
      INFO: HibernateFilter.doFilter started...
      15.02.2009 20:10:04 org.exadel.jsf.PhaseTracker beforePhase
      INFO: BEFORE RESTORE_VIEW(1)
      15.02.2009 20:10:04 org.exadel.jsf.PhaseTracker afterPhase
      INFO: AFTER RESTORE_VIEW(1)
      15.02.2009 20:10:04 org.exadel.jsf.PhaseTracker beforePhase
      INFO: BEFORE APPLY_REQUEST_VALUES(2)
      15.02.2009 20:10:04 org.exadel.jsf.PhaseTracker afterPhase
      INFO: AFTER APPLY_REQUEST_VALUES(2)
      15.02.2009 20:10:04 org.exadel.jsf.PhaseTracker beforePhase
      INFO: BEFORE PROCESS_VALIDATIONS(3)
      15.02.2009 20:10:04 org.exadel.jsf.PhaseTracker afterPhase
      INFO: AFTER PROCESS_VALIDATIONS(3)
      15.02.2009 20:10:04 org.exadel.jsf.PhaseTracker beforePhase
      INFO: BEFORE UPDATE_MODEL_VALUES(4)
      15.02.2009 20:10:04 core.rm.handler.MappingHandler setSelectedIdentifier
      INFO: GenericMappingHandler - switch selectedIdentifier from null to Sichtqualität
      15.02.2009 20:10:04 core.rm.dao.GenericMappingDAO listAll
      INFO: Aufruf von GenericMappingDAO.listAll with identifier: Sichtqualität
      15.02.2009 20:10:04 core.rm.dao.GenericMappingDAO listAll
      INFO: GenericMappingDAO.getByQuery successfully finished, with size: 5
      15.02.2009 20:10:04 org.exadel.jsf.PhaseTracker afterPhase
      INFO: AFTER UPDATE_MODEL_VALUES(4)
      15.02.2009 20:10:04 org.exadel.jsf.PhaseTracker beforePhase
      INFO: BEFORE INVOKE_APPLICATION(5)
      15.02.2009 20:10:04 org.exadel.jsf.PhaseTracker afterPhase
      INFO: AFTER INVOKE_APPLICATION(5)
      15.02.2009 20:10:04 org.exadel.jsf.PhaseTracker beforePhase
      INFO: BEFORE RENDER_RESPONSE(6)
      ==>
       ==> FIRST CALL of Bean.getResult Method!
       ==>
      15.02.2009 20:10:04 core.rm.handler.MappingHandler getResult
      INFO: result: 1739062102
      15.02.2009 20:10:04 core.rm.handler.MappingHandler getResult
      INFO: getResult called....result: [core.rm.model.GenericMapping@d2e55e, core.rm.model.GenericMapping@1d08e21, core.rm.model.GenericMapping@1232cf2, core.rm.model.GenericMapping@5bfbd8, core.rm.model.GenericMapping@f33280] selectedIdentifier: Sichtqualität
      15.02.2009 20:10:04 core.rm.handler.MappingHandler getResult
      INFO: getResult called....after....result: [core.rm.model.GenericMapping@d2e55e, core.rm.model.GenericMapping@1d08e21, core.rm.model.GenericMapping@1232cf2, core.rm.model.GenericMapping@5bfbd8, core.rm.model.GenericMapping@f33280] selectedIdentifier: Sichtqualität
      
      ==>
       ==> SECOND CALL of Bean.getResult Method!
       ==>
      15.02.2009 20:10:05 core.rm.handler.MappingHandler getResult
      INFO: result: 1739062102
      15.02.2009 20:10:05 core.rm.handler.MappingHandler getResult
      INFO: getResult called....result: [core.rm.model.GenericMapping@d2e55e, core.rm.model.GenericMapping@1d08e21, core.rm.model.GenericMapping@1232cf2, core.rm.model.GenericMapping@5bfbd8, core.rm.model.GenericMapping@f33280] selectedIdentifier: Sichtqualität
      15.02.2009 20:10:05 core.rm.handler.MappingHandler getResult
      INFO: getResult called....after....result: [core.rm.model.GenericMapping@d2e55e, core.rm.model.GenericMapping@1d08e21, core.rm.model.GenericMapping@1232cf2, core.rm.model.GenericMapping@5bfbd8, core.rm.model.GenericMapping@f33280] selectedIdentifier: Sichtqualität
      15.02.2009 20:10:05 core.rm.handler.MappingHandler getResult
      INFO:
      15.02.2009 20:10:05 org.exadel.jsf.PhaseTracker afterPhase
      INFO: AFTER RENDER_RESPONSE(6)
      15.02.2009 20:10:05 core.hibernate.HibernateFilter doFilter
      INFO: HibernateFilter.doFilter sucessfully finished...
      
      


        • 1. Re: Doubled call of Bean-Method during rerendering - bug?
          nbelaevski

          Hello,

          The second call is issued by rich:datascroller component. It's not an AJAX bug; that's behavior specific to this component.

          • 2. Re: Doubled call of Bean-Method during rerendering - bug?

            Ok - thank you for your explanation.

            • 3. Re: Doubled call of Bean-Method during rerendering - bug?

              Hi Nick, second is already there although rich:datascroller is removed.

              Therefore the call must come from another component. The page-code has changed a little bit, according to other answers from you - but the main stuff remains the same.

              Could the a4j:commandLink inside rich:column trigger an additional call?
              Maybe only one time - because I have resultsets with more than one row, but the call is only one time.....

              Another similar scenario:
              Although if I only switch selection of rich:comboBox the getResult Method is called twice. There must be a second AJAX-Call from outside, because inside the bean this isn't possible.

              I'm not able to catch the second call....although I've used a4j:log for AJAX-components.

              regards
              roland

              • 4. Re: Doubled call of Bean-Method during rerendering - bug?
                nbelaevski

                Roland,

                On what phase is the second method call done? Please post new phase tracker log.

                Also can you please add this:

                Thread.dumpStack();
                 System.out.println(FacesContext.getCurrentInstance());
                
                to getResult() method and post output here?

                • 5. Re: Doubled call of Bean-Method during rerendering - bug?

                  Hi Nikolay, both calls are done in the RENDER_RESPONSE(6) Phase.
                  With help of your instructions now I can see, that the second call is done from rich:tooltip.
                  This behaviour is reproducable.

                  I've tried some attributes of rich:tooltip e.g. mode in both variants(ajax/client) and attached(true/false). No effect on the doubled output in the logfile.

                  To fasten up the bugsearch I've marked the three tooltips inside of the page-code

                  regards roland

                  Output from catalina.log:

                  17.02.2009 21:58:47 core.hibernate.HibernateFilter doFilter
                  INFO: HibernateFilter.doFilter started...
                  17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker beforePhase
                  INFO: BEFORE RESTORE_VIEW(1)
                  17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker afterPhase
                  INFO: AFTER RESTORE_VIEW(1)
                  17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker beforePhase
                  INFO: BEFORE APPLY_REQUEST_VALUES(2)
                  17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker afterPhase
                  INFO: AFTER APPLY_REQUEST_VALUES(2)
                  17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker beforePhase
                  INFO: BEFORE PROCESS_VALIDATIONS(3)
                  17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker afterPhase
                  INFO: AFTER PROCESS_VALIDATIONS(3)
                  17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker beforePhase
                  INFO: BEFORE UPDATE_MODEL_VALUES(4)
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler setSelectedIdentifier
                  INFO: GenericMappingHandler - switch selectedIdentifier from null to Pressenliste Breite
                  17.02.2009 21:58:47 core.rm.dao.GenericMappingDAO listAll
                  INFO: Aufruf von GenericMappingDAO.listAll with identifier: Pressenliste Breite
                  17.02.2009 21:58:47 core.rm.dao.GenericMappingDAO listAll
                  INFO: GenericMappingDAO.getByQuery successfully finished, with size: 5
                  17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker afterPhase
                  INFO: AFTER UPDATE_MODEL_VALUES(4)
                  17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker beforePhase
                  INFO: BEFORE INVOKE_APPLICATION(5)
                  17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker afterPhase
                  INFO: AFTER INVOKE_APPLICATION(5)
                  17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker beforePhase
                  INFO: BEFORE RENDER_RESPONSE(6)
                  
                  ==>
                   ==> FIRST CALL of getResult
                   ==>
                  
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO:
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO: result: 1714722318
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO:
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO:
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO: getResult called....result: [core.rm.model.GenericMapping@19bdb65, core.rm.model.GenericMapping@1046822, core.rm.model.GenericMapping@509bfc, core.rm.model.GenericMapping@30cefd, core.rm.model.GenericMapping@65724d] selectedIdentifier: Pressenliste Breite
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO:
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO:
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO: getResult called....after....result: [core.rm.model.GenericMapping@19bdb65, core.rm.model.GenericMapping@1046822, core.rm.model.GenericMapping@509bfc, core.rm.model.GenericMapping@30cefd, core.rm.model.GenericMapping@65724d] selectedIdentifier: Pressenliste Breite
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO:
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO:
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO: NIKOLAY WANTS THIS:::::: ==> FacesContext.getCurrentInstance(): org.apache.myfaces.context.servlet.FacesContextImpl@333b2e
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO:
                  
                  ==>
                   ==> SECOND CALL of getResult
                   ==>
                  
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO:
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO: result: 1714722318
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO:
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO:
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO: getResult called....result: [core.rm.model.GenericMapping@19bdb65, core.rm.model.GenericMapping@1046822, core.rm.model.GenericMapping@509bfc, core.rm.model.GenericMapping@30cefd, core.rm.model.GenericMapping@65724d] selectedIdentifier: Pressenliste Breite
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO:
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO:
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO: getResult called....after....result: [core.rm.model.GenericMapping@19bdb65, core.rm.model.GenericMapping@1046822, core.rm.model.GenericMapping@509bfc, core.rm.model.GenericMapping@30cefd, core.rm.model.GenericMapping@65724d] selectedIdentifier: Pressenliste Breite
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO:
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO:
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO: NIKOLAY WANTS THIS:::::: ==> FacesContext.getCurrentInstance(): org.apache.myfaces.context.servlet.FacesContextImpl@333b2e
                  17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
                  INFO:
                  17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker afterPhase
                  INFO: AFTER RENDER_RESPONSE(6)
                  17.02.2009 21:58:47 core.hibernate.HibernateFilter doFilter
                  INFO: HibernateFilter.doFilter sucessfully finished...
                  


                  Output from stdout.log:
                  Hibernate: select genericmap0_.oid as oid7_, genericmap0_.identifier as identifier7_, genericmap0_.value as value7_ from pps_mappingtable genericmap0_ where genericmap0_.identifier=? order by genericmap0_.identifier asc, genericmap0_.value asc
                  java.lang.Exception: Stack trace
                   at java.lang.Thread.dumpStack(Unknown Source)
                   at core.rm.handler.MappingHandler.getResult(MappingHandler.java:78)
                   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                   at java.lang.reflect.Method.invoke(Unknown Source)
                   at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
                   at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
                   at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:140)
                   at org.apache.el.parser.AstValue.getValue(AstValue.java:114)
                   at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
                   at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
                   at javax.faces.component.UIData.getValue(UIData.java:1054)
                   at org.ajax4jsf.component.UIDataAdaptor.getValue(UIDataAdaptor.java:1644)
                   at org.ajax4jsf.component.SequenceDataAdaptor.getDataModel(SequenceDataAdaptor.java:65)
                   at org.ajax4jsf.component.SequenceDataAdaptor.createDataModel(SequenceDataAdaptor.java:59)
                   at org.richfaces.component.UIDataTable.createDataModel(UIDataTable.java:125)
                   at org.ajax4jsf.component.UIDataAdaptor.getExtendedDataModel(UIDataAdaptor.java:621)
                   at org.ajax4jsf.component.UIDataAdaptor.getRowIndex(UIDataAdaptor.java:311)
                   at javax.faces.component._ComponentUtils.idsAreEqual(_ComponentUtils.java:134)
                   at javax.faces.component._ComponentUtils.findComponent(_ComponentUtils.java:110)
                   at javax.faces.component._ComponentUtils.findComponent(_ComponentUtils.java:107)
                   at javax.faces.component._ComponentUtils.findComponent(_ComponentUtils.java:107)
                   at javax.faces.component.UIComponentBase.findComponent(UIComponentBase.java:449)
                   at org.ajax4jsf.renderkit.RendererUtils.findComponentFor(RendererUtils.java:877)
                   at org.ajax4jsf.context.AjaxContextImpl.convertId(AjaxContextImpl.java:391)
                   at org.ajax4jsf.context.AjaxContextImpl.addRegionsFromComponent(AjaxContextImpl.java:331)
                   at org.ajax4jsf.component.AjaxActionComponent.setupReRender(AjaxActionComponent.java:96)
                   at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:60)
                   at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
                   at org.ajax4jsf.component.AjaxViewRoot.broadcastAjaxEvents(AjaxViewRoot.java:340)
                   at org.ajax4jsf.application.AjaxViewHandler.processAjaxEvents(AjaxViewHandler.java:216)
                   at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:169)
                   at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
                   at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)
                   at javax.faces.webapp.FacesServlet.service(FacesServlet.java:155)
                   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                   at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
                   at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
                   at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
                   at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
                   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                   at core.hibernate.HibernateFilter.doFilter(HibernateFilter.java:44)
                   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                   at core.rm.utils.CharsetFilter.doFilter(CharsetFilter.java:36)
                   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
                   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
                   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
                   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
                   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
                   at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:856)
                   at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)
                   at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
                   at java.lang.Thread.run(Unknown Source)
                  FacesContext.getCurrentInstance():org.apache.myfaces.context.servlet.FacesContextImpl@333b2e
                  java.lang.Exception: Stack trace
                   at java.lang.Thread.dumpStack(Unknown Source)
                   at core.rm.handler.MappingHandler.getResult(MappingHandler.java:78)
                   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                   at java.lang.reflect.Method.invoke(Unknown Source)
                   at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
                   at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
                   at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:140)
                   at org.apache.el.parser.AstValue.getValue(AstValue.java:114)
                   at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
                   at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
                   at javax.faces.component.UIData.getValue(UIData.java:1054)
                   at org.ajax4jsf.component.UIDataAdaptor.getValue(UIDataAdaptor.java:1644)
                   at org.ajax4jsf.component.SequenceDataAdaptor.getDataModel(SequenceDataAdaptor.java:65)
                   at org.ajax4jsf.component.SequenceDataAdaptor.createDataModel(SequenceDataAdaptor.java:59)
                   at org.richfaces.component.UIDataTable.createDataModel(UIDataTable.java:125)
                   at org.ajax4jsf.component.UIDataAdaptor.getExtendedDataModel(UIDataAdaptor.java:621)
                   at org.ajax4jsf.component.UIDataAdaptor.getRowIndex(UIDataAdaptor.java:311)
                   at javax.faces.component._ComponentUtils.idsAreEqual(_ComponentUtils.java:134)
                   at javax.faces.component._ComponentUtils.findComponent(_ComponentUtils.java:110)
                   at javax.faces.component._ComponentUtils.findComponent(_ComponentUtils.java:107)
                   at javax.faces.component._ComponentUtils.findComponent(_ComponentUtils.java:107)
                   at javax.faces.component.UIComponentBase.findComponent(UIComponentBase.java:449)
                   at org.ajax4jsf.renderkit.RendererUtils.findComponentFor(RendererUtils.java:877)
                   at org.richfaces.renderkit.html.ToolTipRenderer.getTargetId(ToolTipRenderer.java:250)
                   at org.richfaces.renderkit.html.ToolTipRenderer.constructJSVariable(ToolTipRenderer.java:263)
                   at org.richfaces.renderkit.html.ToolTipRenderer.insertScript(ToolTipRenderer.java:221)
                   at org.richfaces.renderkit.html.HtmlToolTipRenderer.doEncodeEnd(HtmlToolTipRenderer.java:163)
                   at org.richfaces.renderkit.html.HtmlToolTipRenderer.doEncodeEnd(HtmlToolTipRenderer.java:172)
                   at org.richfaces.renderkit.html.ToolTipRenderer.doEncodeEnd(ToolTipRenderer.java:408)
                   at org.ajax4jsf.renderkit.RendererBase.encodeEnd(RendererBase.java:135)
                   at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:624)
                   at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:522)
                   at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:231)
                   at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:102)
                   at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:624)
                   at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:286)
                   at org.ajax4jsf.renderkit.html.AjaxOutputPanelRenderer.encodeChildren(AjaxOutputPanelRenderer.java:61)
                   at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:611)
                   at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)
                   at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:124)
                   at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:67)
                   at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:115)
                   at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:67)
                   at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:115)
                   at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:67)
                   at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:115)
                   at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:67)
                   at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:115)
                   at org.ajax4jsf.renderkit.AjaxContainerRenderer.encodeAjax(AjaxContainerRenderer.java:123)
                   at org.ajax4jsf.component.UIAjaxRegion.encodeAjax(UIAjaxRegion.java:267)
                   at org.ajax4jsf.component.AjaxViewRoot$4.invokeContextCallback(AjaxViewRoot.java:489)
                   at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:163)
                   at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:293)
                   at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:172)
                   at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:293)
                   at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:172)
                   at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:293)
                   at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:172)
                   at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:293)
                   at org.ajax4jsf.component.AjaxViewRoot.encodeChildren(AjaxViewRoot.java:543)
                   at javax.faces.component.UIComponent.encodeAll(UIComponent.java:250)
                   at org.apache.myfaces.application.jsp.JspViewHandlerImpl.actuallyRenderView(JspViewHandlerImpl.java:427)
                   at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:383)
                   at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
                   at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
                   at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
                   at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)
                   at javax.faces.webapp.FacesServlet.service(FacesServlet.java:155)
                   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                   at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
                   at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
                   at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
                   at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
                   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                   at core.hibernate.HibernateFilter.doFilter(HibernateFilter.java:44)
                   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                   at core.rm.utils.CharsetFilter.doFilter(CharsetFilter.java:36)
                   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
                   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
                   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
                   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
                   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
                   at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:856)
                   at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)
                   at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
                   at java.lang.Thread.run(Unknown Source)
                  FacesContext.getCurrentInstance():org.apache.myfaces.context.servlet.FacesContextImpl@333b2e
                  


                  The used JAVA-SRC:
                  public List<GenericMapping> getResult() {
                  
                   log.info("");
                   log.info("result: "+ (this.result==null ? "RESULT-EMTPY" : this.result.hashCode()));
                   log.info("");
                  
                   log.info("");
                   log.info("getResult called....result: "+ this.result + " selectedIdentifier: "+ this.selectedIdentifier);
                   log.info("");
                  
                  
                   //case 1: no result exists and nothing selected
                   if(this.result == null && this.selectedIdentifier == null) {
                   result = new ArrayList<GenericMapping>();
                   log.info("");
                   log.info("FIRST CASE - empty....");
                   log.info("");
                   }
                  
                   if(this.result == null && this.selectedIdentifier != null){
                   //case 3: no result exists
                   result = new GenericMappingDAO().listAll(this.selectedIdentifier);
                   log.info("");
                   log.info("SECOND CASE - empty but id-set....");
                   log.info("");
                   }
                  
                   log.info("");
                   log.info("getResult called....after....result: "+ this.result + " selectedIdentifier: "+ this.selectedIdentifier);
                   log.info("");
                  
                   log.info("");
                   log.info("NIKOLAY WANTS THIS:::::: ==> FacesContext.getCurrentInstance(): "+ FacesContext.getCurrentInstance());
                   log.info("");
                   Thread.dumpStack();
                   System.out.println("FacesContext.getCurrentInstance():" + FacesContext.getCurrentInstance());
                  
                   return this.result;
                   }
                  


                  Page-code:
                  <a4j:region id="outside" renderRegionOnly="true">
                  
                   <a4j:region id="combo_region">
                   <a4j:outputPanel id="combo_placeholder" layout="none">
                   <h:panelGrid id="id_combo" columns="8" styleClass="standardTableBordered">
                   <h:outputLabel value="#{msgs.mapping_identifier_label}: " for="idList" />
                   <rich:comboBox id="idList" value="#{mappingHandler.selectedIdentifier}" suggestionValues="#{mappingHandler.allIdentifiers}"
                   directInputSuggestions="true" defaultLabel="#{msgs.mapping_combo_default}">
                   <a4j:support event="onselect" reRender="list_of_mappings,button_placeholder,combo_placeholder" ajaxSingle="true" />
                   </rich:comboBox>
                   <rich:spacer width="50" height="10" title="Here is a spacer..."/>
                  
                   <a4j:commandLink ajaxSingle="true" id="newKeyLink"
                   oncomplete="#{rich:component('newKeyPanel')}.show()">
                   <h:graphicImage value="/images/edit.gif" style="border:0"/>
                   </a4j:commandLink>
                   <rich:toolTip id="toolNewKey" for="newKeyLink" value="#{msgs.tooltip_create_new_mappingkey}" mode="client" attached="false"/>
                   <a4j:commandLink ajaxSingle="true" id="deleteKeylink"
                   oncomplete="#{rich:component('deleteKeyPanel')}.show()"
                   rendered="#{mappingHandler.selectedIdentifier != null}">
                   <h:graphicImage value="/images/delete.gif" style="border:0"/>
                   <f:setPropertyActionListener value="#{mappingHandler.selectedIdentifier}"
                   target="#{mappingHandler.deletableIdentifier}" />
                   </a4j:commandLink>
                   <rich:toolTip id="toolDeleteKey" for="deletelink" value="#{msgs.tooltip_delete_mappingkey}" mode="client" attached="false"/>
                   <rich:message for="idList" />
                   </h:panelGrid>
                   </a4j:outputPanel>
                   </a4j:region> <!-- id is combo_region-->
                  
                   <br/>
                  
                   <a4j:region id="table_region" renderRegionOnly="true">
                   <rich:dataTable id="list_of_mappings" rows="10"
                   onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
                   onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"
                   cellpadding="0" cellspacing="0"
                   width="1000" border="0" var="record" value="#{mappingHandler.result}">
                   <f:facet name="header">
                   <h:outputText value="#{msgs.mapping_selected_header} #{mappingHandler.selectedIdentifier}"/>
                   </f:facet>
                   <rich:column>
                   <f:facet name="header">
                   <h:outputText value="#{msgs.mapping_oid}" />
                   </f:facet>
                   <h:outputText value="#{record.oid}" />
                   </rich:column>
                   <rich:column filterBy="#{record.value}" filterEvent="onkeyup" sortBy="#{record.value}">
                   <f:facet name="header">
                   <h:outputText value="#{msgs.mapping_value}" />
                   </f:facet>
                   <h:inputText id="mapping_value" value="#{record.value}" label="#{msgs.mapping_value}" required="true">
                   <f:validateLength minimum="1" />
                   </h:inputText>
                   <rich:message for="mapping_value">
                   <f:facet name="passedMarker">
                   <h:graphicImage value="/images/passed.gif" />
                   </f:facet>
                   <f:facet name="errorMarker">
                   <h:graphicImage value="/images/error.gif" />
                   </f:facet>
                   </rich:message>
                   </rich:column>
                   <rich:column>
                   <f:facet name="header">
                   <h:outputText value="#{msgs.mapping_actions}" />
                   </f:facet>
                   <a4j:commandLink id="deletelink" action="#{mappingHandler.deleteMapping}" reRender="list_of_mappings"
                   onclick="if(!confirm('#{msgs.js_delete_mapping}')){return false;};" ajaxSingle="true">
                   <h:graphicImage value="/images/delete.gif" style="border:0"/>
                   <f:setPropertyActionListener value="#{record.oid}" target="#{mappingHandler.oidForDeletion}" />
                   </a4j:commandLink>
                   <rich:toolTip id="toolTable" for="deletelink" value="#{msgs.tooltip_delete_mapping}" mode="client" attached="false"/>
                   </rich:column>
                   </rich:dataTable>
                  
                   </a4j:region> <!-- id is table_region-->
                  
                   <br/>
                  
                   <a4j:region id="button_region_all">
                   <a4j:outputPanel id="button_placeholder" layout="none">
                   <h:panelGrid id="buttons_all" columns="2" styleClass="standardTableBordered" rendered="#{mappingHandler.selectedIdentifier != null}">
                   <a4j:commandButton value="#{msgs.button_label_new_mapping}" onclick="this.disabled=true;" action="#{mappingHandler.createNewMapping}"
                   reRender="list_of_mappings,buttons_all" ajaxSingle="true" />
                   <h:commandButton value="#{msgs.button_label_save}" action="#{mappingHandler.save}" />
                   </h:panelGrid>
                   </a4j:outputPanel>
                   </a4j:region>
                  
                   </a4j:region> <!-- id is outside -->
                  


                  • 6. Re: Doubled call of Bean-Method during rerendering - bug?
                    nbelaevski

                    Roland,

                    This looks like a specific issue of MyFaces. Tooltip that is located out of table tries to access model row index in order to match id and this triggers model access. And data table resets its model before rendering view, that's why it calls getResult() method the second time. I guess the changing "for" attribute to "deleteKeylink" will fix the issue:

                    <a4j:commandLink ajaxSingle="true" id="deleteKeylink"
                     oncomplete="#{rich:component('deleteKeyPanel')}.show()"
                     rendered="#{mappingHandler.selectedIdentifier != null}">
                     <h:graphicImage value="/images/delete.gif" style="border:0"/>
                     <f:setPropertyActionListener value="#{mappingHandler.selectedIdentifier}"
                     target="#{mappingHandler.deletableIdentifier}" />
                     </a4j:commandLink>
                    
                     <rich:toolTip id="toolDeleteKey"
                    
                    for="deleteKeylink"
                    
                    value="#{msgs.tooltip_delete_mappingkey}" mode="client" attached="false"/>


                    • 7. Re: Doubled call of Bean-Method during rerendering - bug?

                      Hi Nikolay, thanks for pointing me to a failure of this page. I've corrected this, but the doubled calls are already there. For me this is a bug if combination of rich:comboBox w. a4j:support &rich:dataTable is used - but now I'm aware of this doubled calling, and I will take this in account during implementation.

                      Following facts:
                      1. Only MyFace is affected from doubled calling (Sun RI do only one call)
                      2. It has nothing to do with the tooltips
                      => I've removed all tooltips from this page, but doubled calling is already there
                      3. Coming to this page, do only one call for getResult (my dataTable getter-Method)
                      4. Switching rich:comboBox do always contains doubled call

                      Now it's up to you to decide if this should be handled as bug or not.
                      I would be ensure, that the call to the getter of the tableModel should only be done once - regardless from which JSF-Implementation is used. Don't forget that MyFace is a widely used implementation.

                      regards
                      roland

                      The stacktrace - switching rich:comboBox

                      Hibernate: select genericmap0_.oid as oid7_, genericmap0_.identifier as identifier7_, genericmap0_.value as value7_ from pps_mappingtable genericmap0_ where genericmap0_.identifier=? order by genericmap0_.identifier asc, genericmap0_.value asc
                      java.lang.Exception: Stack trace
                       at java.lang.Thread.dumpStack(Unknown Source)
                       at core.rm.handler.MappingHandler.getResult(MappingHandler.java:78)
                       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                       at java.lang.reflect.Method.invoke(Unknown Source)
                       at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
                       at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
                       at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:140)
                       at org.apache.el.parser.AstValue.getValue(AstValue.java:114)
                       at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
                       at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
                       at javax.faces.component.UIData.getValue(UIData.java:1054)
                       at org.ajax4jsf.component.UIDataAdaptor.getValue(UIDataAdaptor.java:1644)
                       at org.ajax4jsf.component.SequenceDataAdaptor.getDataModel(SequenceDataAdaptor.java:65)
                       at org.ajax4jsf.component.SequenceDataAdaptor.createDataModel(SequenceDataAdaptor.java:59)
                       at org.richfaces.component.UIDataTable.createDataModel(UIDataTable.java:125)
                       at org.ajax4jsf.component.UIDataAdaptor.getExtendedDataModel(UIDataAdaptor.java:621)
                       at org.ajax4jsf.component.UIDataAdaptor.getRowIndex(UIDataAdaptor.java:311)
                       at javax.faces.component._ComponentUtils.idsAreEqual(_ComponentUtils.java:134)
                       at javax.faces.component._ComponentUtils.findComponent(_ComponentUtils.java:110)
                       at javax.faces.component._ComponentUtils.findComponent(_ComponentUtils.java:107)
                       at javax.faces.component._ComponentUtils.findComponent(_ComponentUtils.java:107)
                       at javax.faces.component.UIComponentBase.findComponent(UIComponentBase.java:449)
                       at org.ajax4jsf.renderkit.RendererUtils.findComponentFor(RendererUtils.java:877)
                       at org.ajax4jsf.context.AjaxContextImpl.convertId(AjaxContextImpl.java:391)
                       at org.ajax4jsf.context.AjaxContextImpl.addRegionsFromComponent(AjaxContextImpl.java:331)
                       at org.ajax4jsf.component.AjaxActionComponent.setupReRender(AjaxActionComponent.java:96)
                       at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:60)
                       at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
                       at org.ajax4jsf.component.AjaxViewRoot.broadcastAjaxEvents(AjaxViewRoot.java:340)
                       at org.ajax4jsf.application.AjaxViewHandler.processAjaxEvents(AjaxViewHandler.java:216)
                       at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:169)
                       at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
                       at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)
                       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:155)
                       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                       at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
                       at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
                       at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
                       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
                       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                       at core.hibernate.HibernateFilter.doFilter(HibernateFilter.java:44)
                       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                       at core.rm.utils.CharsetFilter.doFilter(CharsetFilter.java:36)
                       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
                       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                       at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
                       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
                       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
                       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
                       at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:856)
                       at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)
                       at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
                       at java.lang.Thread.run(Unknown Source)
                      FacesContext.getCurrentInstance():org.apache.myfaces.context.servlet.FacesContextImpl@d11f32
                      java.lang.Exception: Stack trace
                       at java.lang.Thread.dumpStack(Unknown Source)
                       at core.rm.handler.MappingHandler.getResult(MappingHandler.java:78)
                       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                       at java.lang.reflect.Method.invoke(Unknown Source)
                       at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
                       at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
                       at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:140)
                       at org.apache.el.parser.AstValue.getValue(AstValue.java:114)
                       at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
                       at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
                       at javax.faces.component.UIData.getValue(UIData.java:1054)
                       at org.ajax4jsf.component.UIDataAdaptor.getValue(UIDataAdaptor.java:1644)
                       at org.ajax4jsf.component.SequenceDataAdaptor.getDataModel(SequenceDataAdaptor.java:65)
                       at org.ajax4jsf.component.SequenceDataAdaptor.createDataModel(SequenceDataAdaptor.java:59)
                       at org.richfaces.component.UIDataTable.createDataModel(UIDataTable.java:125)
                       at org.ajax4jsf.component.UIDataAdaptor.getExtendedDataModel(UIDataAdaptor.java:621)
                       at org.ajax4jsf.component.UIDataAdaptor.setRowKey(UIDataAdaptor.java:339)
                       at org.richfaces.renderkit.AbstractTableRenderer.encodeTableStructure(AbstractTableRenderer.java:124)
                       at org.richfaces.renderkit.html.DataTableRenderer.doEncodeBegin(DataTableRenderer.java:206)
                       at org.richfaces.renderkit.html.DataTableRenderer.doEncodeBegin(DataTableRenderer.java:194)
                       at org.ajax4jsf.renderkit.RendererBase.encodeBegin(RendererBase.java:101)
                       at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:596)
                       at javax.faces.component.UIData.encodeBegin(UIData.java:729)
                       at org.ajax4jsf.component.UIDataAdaptor.encodeBegin(UIDataAdaptor.java:1220)
                       at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:280)
                       at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:124)
                       at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:67)
                       at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:115)
                       at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:67)
                       at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:115)
                       at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:67)
                       at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:115)
                       at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:67)
                       at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:115)
                       at org.ajax4jsf.renderkit.AjaxContainerRenderer.encodeAjax(AjaxContainerRenderer.java:123)
                       at org.ajax4jsf.component.UIAjaxRegion.encodeAjax(UIAjaxRegion.java:267)
                       at org.ajax4jsf.component.AjaxViewRoot$4.invokeContextCallback(AjaxViewRoot.java:489)
                       at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:163)
                       at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:293)
                       at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:172)
                       at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:293)
                       at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:172)
                       at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:293)
                       at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:172)
                       at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:293)
                       at org.ajax4jsf.component.AjaxViewRoot.encodeChildren(AjaxViewRoot.java:543)
                       at javax.faces.component.UIComponent.encodeAll(UIComponent.java:250)
                       at org.apache.myfaces.application.jsp.JspViewHandlerImpl.actuallyRenderView(JspViewHandlerImpl.java:427)
                       at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:383)
                       at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
                       at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
                       at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
                       at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)
                       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:155)
                       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                       at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
                       at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
                       at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
                       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
                       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                       at core.hibernate.HibernateFilter.doFilter(HibernateFilter.java:44)
                       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                       at core.rm.utils.CharsetFilter.doFilter(CharsetFilter.java:36)
                       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
                       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                       at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
                       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
                       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
                       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
                       at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:856)
                       at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)
                       at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
                       at java.lang.Thread.run(Unknown Source)
                      FacesContext.getCurrentInstance():org.apache.myfaces.context.servlet.FacesContextImpl@d11f32