[richfaces-issues] [JBoss JIRA] (RF-12579) a4:status - out of memory with Jsf ui:debug tag under IE and time to time FireFox
Brian Leathem (JIRA)
jira-events at lists.jboss.org
Tue Nov 6 00:02:18 EST 2012
[ https://issues.jboss.org/browse/RF-12579?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Brian Leathem updated RF-12579:
-------------------------------
Fix Version/s: 5-Tracking
> a4:status - out of memory with Jsf ui:debug tag under IE and time to time FireFox
> ---------------------------------------------------------------------------------
>
> Key: RF-12579
> URL: https://issues.jboss.org/browse/RF-12579
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 4.2.3.Final
> Environment: aspectjrt-1.6.12 - bcprov-jdk14-127 - cglib-nodep-2.2.2 - cssparser-0.9.6 - guava-11.0.2 - hibernate-validator-4.2.0 - javax.faces-2.1.13 - junit-4.10 - log4j-1.2.16 - org.springframework.* -3.0.6.RELEASE - sac-1.3.jar - slf4j-api-1.6.4 - slf4j-log4j12-1.6.4 - WAS8 - RAD
> Reporter: Jean ANDRE
> Fix For: 5-Tracking
>
>
> We have a form which triggers an ajax request - We also use the tag a4j:status to report status to the end-user on ajax request.
> We also use the tag ui:debug to help us in debugging.
> As so long the a4j:status is not called, everything is going well. However, when an ajax request is asked, we display a waiting message. When we return back to the form, any key triggers a popup panel displaying the message "out-of memory".
> Removing the jsf tag ui:debug, solve the problem.
> Then, it seems that the a4j:status is conflicting with the jsf tag ui:debug.
> Under IE, the error is reported as following at the function faceletsDebug, line 317.
> {code}
> function faceletsDebug(URL) { day = new Date(); id = day.getTime(); eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=800,height=600,left = 240,top = 212');"); };var faceletsOrigKeyup = document.onkeyup; document.onkeyup = function(e) { if (window.event) e = window.event; if (String.fromCharCode(e.keyCode) == 'D' & e.shiftKey & e.ctrlKey) faceletsDebug('/NestedWeb/pages/index.jsf?facelets.ui.DebugOutput=1351537421561'); else if (faceletsOrigKeyup) faceletsOrigKeyup(e); };
> //]]>
> </script>
> {code}
> The page we use as template is as following
> {code}
> <?xml version="1.0" encoding="UTF-8" ?>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
> <html xmlns="http://www.w3.org/1999/xhtml"
> xmlns:h="http://java.sun.com/jsf/html"
> xmlns:f="http://java.sun.com/jsf/core"
> xmlns:ui="http://java.sun.com/jsf/facelets"
> xmlns:rich="http://richfaces.org/rich"
> xmlns:a4j="http://richfaces.org/a4j">
> <f:view locale="#{currentUser.locale}">
> <h:head>
> <meta http-equiv="Expires" content="0" />
> <meta http-equiv="Pragma" content="no-cache" />
> <meta http-equiv="Cache-Control" content="private" />
> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
> <meta http-equiv="Content-Language" content="en, fr" />
> <title><ui:insert name="title"><h:outputText value="#{msg['common.label.application.title']}"/></ui:insert></title>
> <link type="text/css" rel="stylesheet" href="#{webApplicationUtil.baseURL}css/nested.css" />
> <script type="text/javascript">//<![CDATA[
> function isWindows() {
> var ua = navigator.userAgent;
> var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
> return (re.exec(ua) != null);
> }
> function stopPropagation(event) {
> if (isWindows()) {
> window.event.cancelBubble = true;
> } else {
> event.stopPropagation();
> }
> }
> //]]></script>
> </h:head>
> <h:body>
> <!-- -->
> <!-- RF 11694 workaround -->
> <!-- JSF JAVASERVERFACES-2016 -->
> <!-- -->
> <h:outputStylesheet id="datatableEcss" library="org.richfaces" name="datatable.ecss" />
> <h:outputScript id="datatableJs" library="org.richfaces" name="datatable.js" />
> <h:outputStylesheet library="org.richfaces" name="accordion.ecss" />
> <h:outputScript library="org.richfaces" name="accordion.js" />
> <h:outputScript library="org.richfaces" name="accordionItem.js" />
> <div id="body" class="body-container">
> <!-- -->
> <!-- H E A D E R -->
> <!-- -->
> <div id="header" class="header-container">
> <ui:insert name="header" />
> </div>
> <!-- -->
> <!-- B O D Y -->
> <!-- -->
> <div id="content" class="content">
> <!-- -->
> <!-- STATUS -->
> <!-- -->
> <a4j:status id="ajax-status"
> name="ajaxStatus"
> onstart="#{rich:component('messageWaiter')}.show()"
> onstop="#{rich:component('messageWaiter')}.hide()"
> onerror="#{rich:component('errorReporter')}.show()" />
> <!-- -->
> <!-- WAITER MESSAGE -->
> <!-- -->
> <rich:popupPanel id="messageWaiter"
> modal="false"
> autosized="true"
> resizeable="false"
> shadowDepth="3"
> shadowOpacity="2"
> top="250">
> Please wait...
> </rich:popupPanel>
> <!-- -->
> <!-- ERROR REPORTER -->
> <!-- -->
> <rich:popupPanel id="errorReporter"
> modal="true"
> autosized="true"
> resizeable="false"
> shadowDepth="3"
> shadowOpacity="2"
> top="250">
> <f:facet name="header">
> <h:outputText value="#{msg['error.application.title']}" />
> </f:facet>
> <a4j:outputPanel layout="block">
> <p>
> <h:outputText value="#{msg['error.application.message']}" />
> </p>
> <a4j:outputPanel styleClass="right-align" layout="block">
> <!-- -->
> <!-- CLOSE CMD -->
> <!-- -->
> <h:outputLink id="errorCloseCmd" value="#{request.contextPath}/">
> <h:outputText value="#{msg['common.command.close']}" />
> </h:outputLink>
> </a4j:outputPanel>
> </a4j:outputPanel>
> </rich:popupPanel>
> <!-- -->
> <!-- APPLICATION CONTENT -->
> <!-- -->
> <ui:insert name="content" />
> </div>
> <!-- -->
> <!-- F O O T E R -->
> <!-- -->
> <ui:insert name="footer" />
> <p>Debug is activated...SHIFT+CTRL+d</p>
> <ui:debug />
> </div>
> </h:body>
> </f:view>
> </html>
> {code}
> The caller is "petty standard":
> {code}
> <!-- -->
> <!-- NEW LIST -->
> <!-- -->
> <a4j:commandButton id="newListCmd"
> value="#{msg['common.command.new.list']}"
> action="#{panelOneController.doNewList}"
> render="desktopTabs,menuOpenedTabs"
> status="ajaxStatus" />
> {code}
> Note also that the ui:debug has an issue:
> ui:debug markup update causes JS infinite recursive loop
> - http://java.net/jira/browse/JAVASERVERFACES-1855
> - http://java.net/jira/browse/JAVASERVERFACES-2426
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the richfaces-issues
mailing list