[richfaces-issues] [JBoss JIRA] (RF-13780) Random JavaScript error due to missing attribute 'richfaces.RICH_CONTAINER'
Michael B (JIRA)
issues at jboss.org
Wed Aug 20 18:07:30 EDT 2014
[ https://issues.jboss.org/browse/RF-13780?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12994231#comment-12994231 ]
Michael B edited comment on RF-13780 at 8/20/14 6:05 PM:
---------------------------------------------------------
[~michpetrov] sorry for the wrong accusation then! - FireBug wraps the search trough all JS files...
So the problem can be worked around as we did with limitRender="true" fixed on rich:tree. But the original problem in the combination RF+Mojarra still remains if you omit to do this on every AJAX-request. This has the downside, that if you actually want to have some (valid and visible) components being re-rendered on an AJAX request without specifically adding those IDs to the rendered-attribute everywhere throughout the application, you can't do it anymore. As I mentioned, that leads to other problems...
The source of the problem being located in jsf.js means that this is originally bad handling by Mojarra?! - or is it just something that only happens because RF introduces the possibility of some components being automatically re-rendered after AJAX-Requests (like rich:message/s, a4j:outputPanel etc.)?
Will you be looking into the main issue as well? - maybe in cooperation with the guys from Mojarra? - or do we have to file a bug report at Mojarra - which would mean back to square one...
was (Author: michaelb80):
[~michpetrov] sorry for the wrong accusation then! - FireBug wraps the search trough all JS files...
So the problem can be worked around as we did with limitRender="true" fixed on rich:tree. But the original problem in the combination RF+Mojarra still remains if you omit to do this on every AJAX-request. This has the downside, that if you actually want to have some (valid and visible) components being re-rendered on an AJAX request without specifically adding those IDs to the rendered-attribute everywhere throughout the application, you can't do it anymore. As I mentioned, that leads to other problems...
The source of the problem being located in jsf.js means that this is originally bad handling by Mojarra?! - or is it just something that only happends because RF introduces the possibility of some components being automatically re-rendered after AJAX-Requests (like rich:message/s, a4j:outputPanel etc.)?
Will you be looking into the main issue as well? - maybe in cooperation with the guys from Mojarra? - or do we have to file a bug report at Mojarra - which would mean back to square one...
> Random JavaScript error due to missing attribute 'richfaces.RICH_CONTAINER'
> ---------------------------------------------------------------------------
>
> Key: RF-13780
> URL: https://issues.jboss.org/browse/RF-13780
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component, component-tree
> Affects Versions: 4.3.7
> Environment: RichFaces 4.3.7
> Mojarra 2.1.29
> Java 7 Update 67 (x64)
> Tomcat 7.0.52 (x64)
> Firefox 31
> Reporter: Michael B
>
> First of all: this is a bug report which may be related to RF-13776, since it also originates in the same spot of the JavaScript library of RichFaces.
> Preface:
> The problem is difficult to reproduce systematically, since it only seems to occur in one of n cases of loading one and the same complex xhtml (with exactly the same data from the backing bean).
> The problem is described based on the rich:tree component when clicking on the expand icon of a treeNode which fires a "ToggleEvent".
> Occasionally there is a JavaScript error in the last line of
> {code}
> richfaces.ui.TreeNode.emitToggleEvent = function(nodeId) {
> var node = document.getElementById(nodeId);
> if (!node) {
> return;
> }
> richfaces.$(node).__fireToggleEvent();
> };
> {code}
> When the problem occurs, the expression {code}richfaces.$(node){code} evaluates to 'undefined'.
> Debugging into the function when the problem occurs:
> {code:title=richfaces.$|borderStyle=solid}
> richfaces.$ = function(source) {
> var element = richfaces.getDomElement( source );
> if(element)
> {
> return( element[richfaces.RICH_CONTAINER] || {} )["component"]
> }
> };
> {code}
> While the element is correctly evaluated to the treeNode/treeNodeToggle-source, the expression {code}element[richfaces.RICH_CONTAINER]{code} evaluates to 'undefined'.
> Reloading the page one or more times produces correct results, where the attribute is set.
> To be able to provide a reproducable example of the problem, please provide some information under which circumstances the property may not be set correctly for some components. Please also give us a hint, where to debug into the RF JavaScript code to find the spot where this property is set.
> Although the problem doesn't occur all the time, it happens quite often with the effect of breaking the entire application. So for future versions I would suggest a check if {code}richfaces.$(xyz){code} evalutes to a valid result, before invoking any operations on the result and maybe write a message to the a4j:log in cases where a valid result is expected but not returned.
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
More information about the richfaces-issues
mailing list