Out of memory Error in IE 6
root2000 May 10, 2007 9:21 AMHi, I have the following problem in IE 6. I'm using a4j:support in a t:inputText field, i want to send an ajax request to the server when the user changes the value in the field and rerender it with a new css based on an EL expression. My problem is that when changed a field for a second time or another field i get Out of memory error in IE 6 and IE 7. In Firefox 2.0.3 there is no such problem. I use the latest nightly build of ajax4jsf. Here is a sample from the page:
<td><t:inputText id="documentType" value="#{cert.documentType}" styleClass="#{(cert.available) ? ((cert.changed) ? 'redText' : '' ): 'strikeText'}"> <a4j:support event="onchange" ajaxSingle="true" reRender="documentType" actionListener="#{controlResultsController.updateValue}"> <a4j:actionparam name="rowIndex" value="#{ecs:countRows(goodsItemIE518.producedDocCerts,cert)}"></a4j:actionparam> <a4j:actionparam name="changeTable" value="producedDocCerts"></a4j:actionparam> </a4j:support> </t:inputText></td>
and the server side code:
public void updateValue(ActionEvent evt) { FacesContext context = FacesContext.getCurrentInstance(); HttpServletRequest request = (HttpServletRequest) context .getExternalContext().getRequest(); String changeName = request.getParameter("changeTable"); int rowIndex = Integer.parseInt(request.getParameter("rowIndex")); GoodsItem goodsBean = (GoodsItem) getBean("goodsItemIE518"); List goodsList; if (changeName.equals("prevAdminDocuments")) { goodsList = (List) goodsBean.getPrevAdminDocuments(); GIPreviousAdmReferences good = ((GIPreviousAdmReferences) goodsList .get(rowIndex)); good.setChanged(true); } else if (changeName.equals("producedDocCerts")) { goodsList = (List) goodsBean.getProducedDocCerts(); GIProducedDocCert good = ((GIProducedDocCert) goodsList .get(rowIndex)); good.setChanged(true); } else if (changeName.equals("specialMentions")) { goodsList = (List) goodsBean.getSpecialMentions(); GISpecialMentions good = ((GISpecialMentions) goodsList .get(rowIndex)); good.setChanged(true); } else if (changeName.equals("containers")) { goodsList = (List) goodsBean.getContainers(); GIContainers good = ((GIContainers) goodsList.get(rowIndex)); good.setChanged(true); } else if (changeName.equals("packages")) { goodsList = (List) goodsBean.getPackages(); GIPackages good = ((GIPackages) goodsList.get(rowIndex)); good.setChanged(true); } setBean("goodsItemIE518", goodsBean); }
The table row is in a <a4j:repeat> block.