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.