7 Replies Latest reply on Feb 2, 2008 11:47 AM by Sergey Smirnov

    ajaxSingle in 3.1.4 differs from a4j1.1.1

    Michael Heinen Newbie

      I updated my app from a4j 1.1.1 to richfaces 3.1.4 and many commandButtons are not working anymore.

      Following code runs with a4j 1.1.1 but the actionListener is not called with richfaces 3.1.4.
      It is working fine if I remove ajaxSingle attribute.

      <a4j:outputPanel id="a4jOrigDPButtons">
      <a4j:region renderRegionOnly="false">

      <a4j:commandButton id="origDocButton2"
      immediate="true"
      ajaxSingle="true"
      value="bla" actionListener="#{ProxyModeController.dummyListener}"
      oncomplete=";displayOrigDoc();"
      reRender="aOrigDoc,a4jOrigDPButtons"
      rendered="..."
      disabled=...">

      <a4j:actionparam name="originalDocumentInline" assignTo="#{requestScope['originalDocumentInlineDisplayed']}"
      value="#{empty requestScope['originalDocumentInlineDisplayed'] || requestScope['originalDocumentInlineDisplayed']!='true' ? 'true':'false'}"/>

      </a4j:commandButton>
      </a4j:region>
      </a4j:outputPanel>

      Is this a bug or has the functionality be changed ?
      Michael

        • 1. Re: ajaxSingle in 3.1.4 differs from a4j1.1.1
          Ilya Shaikovsky Master

          it seems that to deal with this we need some more detailed snioppet (and use code tags please).. And request information from phasetracker and a4j:log.

          • 2. Re: ajaxSingle in 3.1.4 differs from a4j1.1.1
            Michael Heinen Newbie

            sorry, I wasn't aware of the code tag.
            I am using myfacesCore 1.1.5 and tomahawk 1.1.5 snapshot.

            A more detailed code snipped?
            What do you mean by this or what is missing?

            Here is the log output from this button with ajaxSingle=true set:

            debug[15:28:14,694]: Have Event [object Object] with properties: target: undefined, srcElement: [object], type: click
            debug[15:28:14,710]: NEW AJAX REQUEST !!! with form :docform
            debug[15:28:14,710]: Form have onsubmit function, call it
            debug[15:28:14,726]: Append hidden control panelmode with value [6] and value attribute [6]
            debug[15:28:14,726]: Append text control searchText with value

            • and value attribute

            • debug[15:28:14,726]: Append hidden control selectedFilter with value [] and value attribute []
              debug[15:28:14,741]: Append hidden control selectedCategoryIndex with value [0] and value attribute [0]
              debug[15:28:14,741]: Append hidden control catState with value [] and value attribute []
              debug[15:28:14,741]: Append text control peoplefield with value [Type here for more options] and value attribute [Type here for more options]
              debug[15:28:14,741]: Append hidden control selFilter with value [] and value attribute []
              debug[15:28:14,757]: Append hidden control selFilterType with value [] and value attribute []
              debug[15:28:14,757]: Append hidden control rpcTax with value [] and value attribute []
              debug[15:28:14,757]: Append hidden control rpcCat with value [] and value attribute []
              debug[15:28:14,773]: Append hidden control extCatFilterTax with value [] and value attribute []
              debug[15:28:14,773]: Append hidden control extCatFilterCat with value [] and value attribute []
              debug[15:28:14,773]: Append hidden control atChangedTaxonomy with value [] and value attribute []
              debug[15:28:14,788]: Append hidden control atCangedCategory with value [] and value attribute []
              debug[15:28:14,788]: Append hidden control atSelected with value [] and value attribute []
              debug[15:28:14,788]: Append hidden control docidForSiblings with value [] and value attribute []
              debug[15:28:14,788]: Append hidden control typeForSiblings with value [noSiblings] and value attribute [noSiblings]
              debug[15:28:14,804]: Append hidden control selectedDocumentId with value [] and value attribute []
              debug[15:28:14,804]: Append hidden control yscroller2 with value [0] and value attribute [0]
              debug[15:28:14,804]: Append hidden control selectedDoclistColumn with value [] and value attribute []
              debug[15:28:14,819]: Append hidden control doclistInd with value [] and value attribute []
              debug[15:28:14,819]: Append hidden control doclistIndSel with value [] and value attribute []
              debug[15:28:14,819]: Append hidden control yscroller with value [0] and value attribute [0]
              debug[15:28:14,835]: Append hidden control selectedSiblinglistColumn with value [] and value attribute []
              debug[15:28:14,835]: Append hidden control selectedSiblingId with value [] and value attribute []
              debug[15:28:14,835]: Append hidden control siblingListYScroller2 with value [0] and value attribute [0]
              debug[15:28:14,851]: Append hidden control siblinglistInd with value [] and value attribute []
              debug[15:28:14,851]: Append hidden control siblinglistIndSel with value [] and value attribute []
              debug[15:28:14,851]: Append hidden control siblingListYScroller with value [0] and value attribute [0]
              debug[15:28:14,866]: Append hidden control siblingRowIndex with value [0] and value attribute [0]
              debug[15:28:14,866]: Append hidden control selectedTaxonomyId with value [] and value attribute []
              debug[15:28:14,866]: Append hidden control selectedCategoryId with value [] and value attribute []
              debug[15:28:14,882]: Append hidden control proChangedTaxonomy with value [] and value attribute []
              debug[15:28:14,882]: Append hidden control proCangedCategory with value [] and value attribute []
              debug[15:28:14,882]: Append hidden control proSelected with value [] and value attribute []
              debug[15:28:14,898]: Append text control docform:cpTList:9:inputCPsel with value [] and value attribute []
              debug[15:28:14,898]: Append select-one control fontSizeMenu with value [cnt_small] and value attribute [cnt_small]
              debug[15:28:14,898]: Append text control docform:addHiglightText with value [] and value attribute []
              debug[15:28:14,913]: Append hidden control docXMLPreviewPagerHiddenPagenr with value [1] and value attribute [1]
              debug[15:28:14,913]: Append hidden control docOriginalPreviewPagerHiddenPagenr with value [] and value attribute []
              debug[15:28:14,913]: Append hidden control docform_SUBMIT with value [1] and value attribute [1]
              debug[15:28:14,929]: Append hidden control docform:_link_hidden_ with value [] and value attribute []
              debug[15:28:14,929]: Append hidden control docform:_idcl with value [] and value attribute []
              debug[15:28:14,929]: Append hidden control javax.faces.ViewState with value [rO0ABXVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAN0AARfaWQycHQADy9zbF9leHBsb3JlLmpzcA==] and value attribute [rO0ABXVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAN0AARfaWQycHQADy9zbF9leHBsb3JlLmpzcA==]
              debug[15:28:14,944]: parameter originalDocumentInline with value true
              debug[15:28:14,944]: parameter docform:origDocButton2 with value docform:origDocButton2
              debug[15:28:14,944]: Start XmlHttpRequest
              debug[15:28:14,960]: Reqest state : 1
              debug[15:28:14,976]: QueryString: AJAXREQUEST=docform%3A_idJsp485&panelmode=6&searchText=*&selectedFilter=&selectedCategoryIndex=0&catState=&peoplefield=Type%20here%20for%20more%20options&selFilter=&selFilterType=&rpcTax=&rpcCat=&extCatFilterTax=&extCatFilterCat=&atChangedTaxonomy=&atCangedCategory=&atSelected=&docidForSiblings=&typeForSiblings=noSiblings&selectedDocumentId=&yscroller2=0&selectedDoclistColumn=&doclistInd=&doclistIndSel=&yscroller=0&selectedSiblinglistColumn=&selectedSiblingId=&siblingListYScroller2=0&siblinglistInd=&siblinglistIndSel=&siblingListYScroller=0&siblingRowIndex=0&selectedTaxonomyId=&selectedCategoryId=&proChangedTaxonomy=&proCangedCategory=&proSelected=&docform%3AcpTList%3A4%3AradioCPsel=medium&docform%3AcpTList%3A9%3AinputCPsel=&fontSizeMenu=cnt_small&docform%3AaddHiglightText=&docXMLPreviewPagerHiddenPagenr=1&docOriginalPreviewPagerHiddenPagenr=&docform_SUBMIT=1&docform%3A_link_hidden_=&docform%3A_idcl=&javax.faces.ViewState=rO0ABXVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAN0AARfaWQycHQADy9zbF9leHBsb3JlLmpzcA%3D%3D&originalDocumentInline=true&docform%3AorigDocButton2=docform%3AorigDocButton2&
              debug[15:28:15,319]: Reqest state : 2
              debug[15:28:15,319]: Reqest state : 3
              debug[15:28:15,335]: Reqest state : 4
              debug[15:28:15,335]: Reqest end with state 4
              debug[15:28:15,335]: Response with content-type: text/xml;charset=UTF-8
              debug[15:28:15,335]: Full response content: <input id="docform:origDocButton2" name="docform:origDocButton2" onclick="A4J.AJAX.Submit('docform:_idJsp485','docform',event,{'parameters':{'originalDocumentInline':'true','docform:origDocButton2':'docform:origDocButton2'} ,'actionUrl':'/liti/faces/sl_explore.jsp?javax.portlet.faces.DirectLink=true','oncomplete':function(request,event,data){enableSubmit();showProgressBar(false);displayOrigDoc();}} );return false;" value="Open" class="button_img_small2" style="z-index:1" title="Open the original document." type="button" />falseenableSubmit();showProgressBar(false);displayOrigDoc();
              debug[15:28:15,351]: Header Ajax-Expired not found, search in
              debug[15:28:15,351]: search for elements by name 'meta' in element #document
              debug[15:28:15,351]: selectNodes found 2
              debug[15:28:15,366]: Find
              debug[15:28:15,366]: Find
              debug[15:28:15,366]: Header Ajax-Update-Ids not found, search in
              debug[15:28:15,382]: search for elements by name 'meta' in element #document
              debug[15:28:15,382]: selectNodes found 2
              debug[15:28:15,382]: Find
              debug[15:28:15,398]: Update page by list of rendered areas from response docform:a4jOrigDPButtons,docform:aOrigDoc,messageform:a4jMessageBox,a4jLockedBox
              debug[15:28:15,398]: search for elements by name 'script' in element #document
              debug[15:28:15,398]: selectNodes found 1
              debug[15:28:15,413]: in response with src=/liti/faces/a4j_3_1_4.GAorg.ajax4jsf.javascript.AjaxScript
              debug[15:28:15,413]: Such element exist in document
              debug[15:28:15,413]: search for elements by name 'link' in element #document
              debug[15:28:15,413]: selectNodes found 0
              debug[15:28:15,429]: Attempt to update part of page for Id: docform:a4jOrigDPButtons
              debug[15:28:15,429]: call selectSingleNode for id= docform:a4jOrigDPButtons
              debug[15:28:15,429]: Replace content of node by outerHTML()
              debug[15:28:15,444]: search for elements by name 'script' in element span
              debug[15:28:15,444]: selectNodes found 0
              debug[15:28:15,444]: Scripts in updated part count : 0
              debug[15:28:15,460]: Update part of page for Id: docform:a4jOrigDPButtons successful
              debug[15:28:15,460]: Attempt to update part of page for Id: docform:aOrigDoc
              debug[15:28:15,460]: call selectSingleNode for id= docform:aOrigDoc
              debug[15:28:15,476]: Replace content of node by outerHTML()
              debug[15:28:15,476]: search for elements by name 'script' in element span
              debug[15:28:15,476]: selectNodes found 0
              debug[15:28:15,491]: Scripts in updated part count : 0
              debug[15:28:15,491]: Update part of page for Id: docform:aOrigDoc successful
              debug[15:28:15,491]: Attempt to update part of page for Id: messageform:a4jMessageBox
              debug[15:28:15,507]: call selectSingleNode for id= messageform:a4jMessageBox
              debug[15:28:15,507]: Replace content of node by outerHTML()
              debug[15:28:15,507]: search for elements by name 'script' in element span
              debug[15:28:15,523]: selectNodes found 0
              debug[15:28:15,523]: Scripts in updated part count : 0
              debug[15:28:15,523]: Update part of page for Id: messageform:a4jMessageBox successful
              debug[15:28:15,538]: Attempt to update part of page for Id: a4jLockedBox
              debug[15:28:15,538]: call selectSingleNode for id= a4jLockedBox
              debug[15:28:15,554]: Replace content of node by outerHTML()
              debug[15:28:15,554]: search for elements by name 'script' in element span
              debug[15:28:15,554]: selectNodes found 0
              debug[15:28:15,569]: Scripts in updated part count : 0
              debug[15:28:15,569]: Update part of page for Id: a4jLockedBox successful
              debug[15:28:15,569]: call selectSingleNode for id= ajax-view-state
              debug[15:28:15,585]: Hidden JSF state fields:
              debug[15:28:15,585]: Namespace for hidden view-state input fields is undefined
              debug[15:28:15,601]: search for elements by name 'input' in element span
              debug[15:28:15,601]: selectNodes found 1
              debug[15:28:15,601]: Replace value for inputs: 132 by new values: 1
              debug[15:28:15,616]: Input in response: javax.faces.ViewState
              debug[15:28:15,616]: Found same input on page with type: hidden
              debug[15:28:15,632]: Found same input on page with type: hidden
              debug[15:28:15,632]: Found same input on page with type: hidden
              debug[15:28:15,632]: Found same input on page with type: hidden
              debug[15:28:15,648]: Found same input on page with type: hidden
              debug[15:28:15,648]: Found same input on page with type: hidden
              debug[15:28:15,648]: search for elements by name 'INPUT' in element span
              debug[15:28:15,663]: selectNodes found 0
              debug[15:28:15,663]: Replace value for inputs: 132 by new values: 0
              debug[15:28:15,663]: call selectSingleNode for id= _A4J.AJAX.focus
              debug[15:28:15,679]: No focus information in response
              debug[15:28:15,679]: call selectSingleNode for id= org.ajax4jsf.oncomplete
              debug[15:28:15,679]: Call request oncomplete function after processing updates
              debug[15:28:15,710]: call selectSingleNode for id= _ajax:data

              thanks for your help,
              Michael
            • 5. Re: ajaxSingle in 3.1.4 differs from a4j1.1.1
              Sergey Smirnov Master

              ajaxSingle=true and immediate=true does not
              make sense to use together. They have the similar behaviors.

              • 6. Re: ajaxSingle in 3.1.4 differs from a4j1.1.1
                Michael Heinen Newbie

                I was not aware of this PhaseTracker, thanks for the hint:
                Here are the logs of this PhaseTracker:
                1) with ajaxSingle=true
                [2008-02-02 13:50:10,431] http-8080-1 [DEBUG] lifecycle.LifecycleImpl executePhase: entering RESTORE_VIEW(1) in org.apache.myfaces.lifecycle.LifecycleImpl
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker beforePhase
                INFO: BEFORE RESTORE_VIEW(1)
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker beforePhase
                INFO: BEFORE RESTORE_VIEW(1)
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker afterPhase
                INFO: AFTER RESTORE_VIEW(1)
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker afterPhase
                INFO: AFTER RESTORE_VIEW(1)
                [2008-02-02 13:50:10,525] http-8080-1 [DEBUG] lifecycle.LifecycleImpl executePhase: exiting RESTORE_VIEW(1) in org.apache.myfaces.lifecycle.LifecycleImpl
                [2008-02-02 13:50:10,525] http-8080-1 [DEBUG] lifecycle.LifecycleImpl executePhase: entering APPLY_REQUEST_VALUES(2) in org.apache.myfaces.lifecycle.LifecycleImpl
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker beforePhase
                INFO: BEFORE APPLY_REQUEST_VALUES(2)
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker beforePhase
                INFO: BEFORE APPLY_REQUEST_VALUES(2)
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker afterPhase
                INFO: AFTER APPLY_REQUEST_VALUES(2)
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker afterPhase
                INFO: AFTER APPLY_REQUEST_VALUES(2)
                [2008-02-02 13:50:10,540] http-8080-1 [DEBUG] lifecycle.LifecycleImpl executePhase: exiting APPLY_REQUEST_VALUES(2) in org.apache.myfaces.lifecycle.LifecycleImpl
                [2008-02-02 13:50:10,540] http-8080-1 [DEBUG] lifecycle.LifecycleImpl executePhase: entering PROCESS_VALIDATIONS(3) in org.apache.myfaces.lifecycle.LifecycleImpl
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker beforePhase
                INFO: BEFORE PROCESS_VALIDATIONS(3)
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker beforePhase
                INFO: BEFORE PROCESS_VALIDATIONS(3)
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker afterPhase
                INFO: AFTER PROCESS_VALIDATIONS(3)
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker afterPhase
                INFO: AFTER PROCESS_VALIDATIONS(3)
                [2008-02-02 13:50:10,540] http-8080-1 [DEBUG] lifecycle.LifecycleImpl executePhase: exiting PROCESS_VALIDATIONS(3) in org.apache.myfaces.lifecycle.LifecycleImpl
                [2008-02-02 13:50:10,540] http-8080-1 [DEBUG] lifecycle.LifecycleImpl executePhase: entering UPDATE_MODEL_VALUES(4) in org.apache.myfaces.lifecycle.LifecycleImpl
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker beforePhase
                INFO: BEFORE UPDATE_MODEL_VALUES(4)
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker beforePhase
                INFO: BEFORE UPDATE_MODEL_VALUES(4)
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker afterPhase
                INFO: AFTER UPDATE_MODEL_VALUES(4)
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker afterPhase
                INFO: AFTER UPDATE_MODEL_VALUES(4)
                [2008-02-02 13:50:10,540] http-8080-1 [DEBUG] lifecycle.LifecycleImpl executePhase: exiting UPDATE_MODEL_VALUES(4) in org.apache.myfaces.lifecycle.LifecycleImpl
                [2008-02-02 13:50:10,540] http-8080-1 [DEBUG] lifecycle.LifecycleImpl executePhase: entering INVOKE_APPLICATION(5) in org.apache.myfaces.lifecycle.LifecycleImpl
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker beforePhase
                INFO: BEFORE INVOKE_APPLICATION(5)
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker beforePhase
                INFO: BEFORE INVOKE_APPLICATION(5)
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker afterPhase
                INFO: AFTER INVOKE_APPLICATION(5)
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker afterPhase
                INFO: AFTER INVOKE_APPLICATION(5)
                [2008-02-02 13:50:10,540] http-8080-1 [DEBUG] lifecycle.LifecycleImpl executePhase: exiting INVOKE_APPLICATION(5) in org.apache.myfaces.lifecycle.LifecycleImpl
                [2008-02-02 13:50:10,540] http-8080-1 [DEBUG] lifecycle.LifecycleImpl render: entering RENDER_RESPONSE(6) in org.apache.myfaces.lifecycle.LifecycleImpl
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker beforePhase
                INFO: BEFORE RENDER_RESPONSE(6)
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker beforePhase
                INFO: BEFORE RENDER_RESPONSE(6)
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker afterPhase
                INFO: AFTER RENDER_RESPONSE(6)
                02.02.2008 13:50:10 org.exadel.jsf.PhaseTracker afterPhase
                INFO: AFTER RENDER_RESPONSE(6)
                [2008-02-02 13:50:10,744] http-8080-1 [DEBUG} lifecycle.LifecycleImpl render: exiting RENDER_RESPONSE(6) in org.apache.myfaces.lifecycle.LifecycleImpl

                2) without ajaxSingle (NOTE that the ActionListener
                BaseController dummyListener is called)
                [2008-02-02 13:54:16,211] http-8080-1 [DEBUG] lifecycle.LifecycleImpl executePhase: entering RESTORE_VIEW(1) in org.apache.myfaces.lifecycle.LifecycleImpl
                02.02.2008 13:54:16 org.exadel.jsf.PhaseTracker beforePhase
                INFO: BEFORE RESTORE_VIEW(1)
                02.02.2008 13:54:16 org.exadel.jsf.PhaseTracker beforePhase
                INFO: BEFORE RESTORE_VIEW(1)
                02.02.2008 13:54:16 org.exadel.jsf.PhaseTracker afterPhase
                INFO: AFTER RESTORE_VIEW(1)
                02.02.2008 13:54:16 org.exadel.jsf.PhaseTracker afterPhase
                INFO: AFTER RESTORE_VIEW(1)
                [2008-02-02 13:54:16,320] http-8080-1 [DEBUG] lifecycle.LifecycleImpl executePhase: exiting RESTORE_VIEW(1) in org.apache.myfaces.lifecycle.LifecycleImpl
                [2008-02-02 13:54:16,336] http-8080-1 [DEBUG] lifecycle.LifecycleImpl executePhase: entering APPLY_REQUEST_VALUES(2) in org.apache.myfaces.lifecycle.LifecycleImpl
                02.02.2008 13:54:16 org.exadel.jsf.PhaseTracker beforePhase
                INFO: BEFORE APPLY_REQUEST_VALUES(2)
                02.02.2008 13:54:16 org.exadel.jsf.PhaseTracker beforePhase
                INFO: BEFORE APPLY_REQUEST_VALUES(2)
                [2008-02-02 13:54:21,148] http-8080-1 [DEBUG] controller.BaseController dummyListener: TRACE
                02.02.2008 13:54:21 org.exadel.jsf.PhaseTracker afterPhase
                INFO: AFTER APPLY_REQUEST_VALUES(2)
                02.02.2008 13:54:21 org.exadel.jsf.PhaseTracker afterPhase
                INFO: AFTER APPLY_REQUEST_VALUES(2)
                [2008-02-02 13:54:21,164] http-8080-1 [DEBUG] lifecycle.LifecycleImpl shouldRenderResponse: exiting from lifecycle.execute in APPLY_REQUEST_VALUES(2) because getRenderResponse is true from one of the after listeners
                [2008-02-02 13:54:21,164] http-8080-1 [DEBUG] lifecycle.LifecycleImpl render: entering RENDER_RESPONSE(6) in org.apache.myfaces.lifecycle.LifecycleImpl
                02.02.2008 13:54:21 org.exadel.jsf.PhaseTracker beforePhase
                INFO: BEFORE RENDER_RESPONSE(6)
                02.02.2008 13:54:21 org.exadel.jsf.PhaseTracker beforePhase
                INFO: BEFORE RENDER_RESPONSE(6)
                02.02.2008 13:54:21 org.exadel.jsf.PhaseTracker afterPhase
                INFO: AFTER RENDER_RESPONSE(6)
                02.02.2008 13:54:21 org.exadel.jsf.PhaseTracker afterPhase
                INFO: AFTER RENDER_RESPONSE(6)
                [2008-02-02 13:54:21,742] http-8080-1 [DEBUG] lifecycle.LifecycleImpl render: exiting RENDER_RESPONSE(6) in org.apache.myfaces.lifecycle.LifecycleImpl

                I used immedaite and ajaSinlge since a4j1.0.2. There were some issues in the past with ajaxSingle and I did not remove it until now.
                Nevertheless I am very interested why the ActionListener is not called with rf3.1.4 if i use ajaxSingle. I have to update many jsp pages if the ajaxSingle (or commands) are now working in a different way.

                Michael

                • 7. Re: ajaxSingle in 3.1.4 differs from a4j1.1.1
                  Sergey Smirnov Master

                  remove immediate="true" now. It is a right time.