-
Notifications
You must be signed in to change notification settings - Fork 109
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UIData#invokeOnComponent shouldn't proceed if the clientId doesn't start with the UIData clientId #4262
Comments
@edburns Commented https://javaee.groups.io/g/jsf-spec/message/30 Also, please consider joining that group, as that group has taken the Thanks, Ed Burns |
|
Please fix this, it prevents us from migrating to java ee 8 because EL expressions in a datatable are executed even when the table itself is not rendered. At least the scope of the try/finally (this.setRowIndex(savedRowIndex);) in the invokeOnComponent method should be greatly reduced to only cover the part where the index is set. |
This issue is marked as stale because there was no activity on it for the last 2 years. Remove stale label or comment or this will be closed in 30 days |
Still not fixed |
@tandraschko Can you supply a reproducer and/or fix? |
i dont have time to provide a PR or example but the following IF is/was missing in Mojarra: https://github.com/apache/myfaces/blob/c891d43c7740dd40c206b0638d23a11b69a0d441/api/src/main/java/jakarta/faces/component/UIData.java#L383 |
it could be that it was fixed with this https://github.com/eclipse-ee4j/mojarra/pull/4506/files but i didnt verify it |
A reproducer is welcome. I'm having difficulty understanding the issue. |
Closing off as stale. |
The new Search Expressions uses findComponent or invokeOnComponent (as fallback) to get a component by id.
I have a case, where the "value" attribute of the dataTable is not yet completely resolveable and it not yet rendered.
If i use invokeOnComponent to search a component, which is placed outside of the datatable, and it hits the datatable, the dataTable will throw a exception because of the unresolvable EL.
The best way to fix this would be if UIData#invokeOnComponent would check if the clientIdToSearch starts with the UIData clientId.
If it doesn't match, invokeOnComponent in the UIData can be completely skipped.
It's already implemented that way in MyFaces: http://grepcode.com/file/repo1.maven.org/maven2/org.apache.myfaces.core/myfaces-api/2.1.9/javax/faces/component/UIData.java#359
This is likely also a great performance improvement for some cases.
The text was updated successfully, but these errors were encountered: