|Project:||Kuali Rice Development|
|Component/s:||Quality Assurance, User Interface|
|Reporter:||Chad Hagstrom||Assignee:||Chad Hagstrom|
|Remaining Estimate:||1 hour, 30 minutes|
|Time Spent:||Not Specified|
|Original Estimate:||1 hour, 30 minutes|
java.lang.RuntimeException: Cannot verify that the methodToCall should be methodToCall.toggleTab.tabOverview.x
However, the expand/collapse all buttons do not cause such an error; it only seems to occur when toggling an individual tab.
|Comment by Jonathan Keller [ 18/Aug/09 ]|
Argh...The hack which allows the other links to work should be in IdentityManagementDocumentActionBase - this methodToCall just needs to be added to the list.
|Comment by Chad Hagstrom [ 28/Aug/09 ]|
I believe the hack Jonathan mentioned would need to go in IdentityManagementBaseInquiryAction, not IdentityManagementDocumentActionBase, since I'm only noticing this problem on the person/group/role inquiry pages.
Also, I think another part of the problem is that the person/group/role inquiries use KualiIdentityManagementDocumentFormBase, which is a descendant of KualiDocumentFormBase instead of InquiryForm, meaning that the person/group/role inquiries use the overriden version of the shouldPropertyBePopulatedInForm() method. For instance, the non-person/group/role inquiries return true for this method when checking for the "toggleTab" methodToCall values, because (as can be seen by PojoFormBase's implementation) their strutsActionMappingScope is not "session" and their isNewForm property is always true, so the editable/required property checks are skipped. However, in KualiDocumentFormBase (and hence KualiIdentityManagementDocumentFormBase and its descendants), that particular method is overriden without calling the old one at all, and those two checks from the PojoFormBase's version have been replaced by a webUtils.isDocumentSession check (which returns true in the case of the person/group/role inquries), so the editable/required property checks are performed even though those property lists are empty (hence resulting in the inability to find the "toggleTab"-related methodToCall).
In that case, what would be the best way to solve this? Add the hack mentioned in Jonathan's post (but to IdentityManagementBaseInquiryAction instead)? Make an addition to the ALWAYS_VALID_PARAMETER_PREFIXES list (used by KualiDocumentFormBase's implementation of shouldPropertyBePopulatedInForm() in its property checks, which is why the expand/collapse all buttons do not suffer from this problem)? Some other approach?
|Comment by Garey Taylor [ 31/Aug/09 ]|
Give ALWAYS_VALID_PARAMETER_PREFIXES work around a try and if it doesn't work, we can go with Jonathan's fix. Thanks for the thorough analysis!
|Comment by Chad Hagstrom [ 31/Aug/09 ]|
This has been fixed for the KualiDocumentFormBase-related inquiries (person, group, and role) by adding "methodToCall.toggleTab" to the ALWAYS_VALID_PARAMETER_PREFIXES list. However, I did discover another problem on the group and role inquiry pages during my investigation; I'll be creating a new issue to track this problem shortly.