Disturbing observation - why is it needlessly executing code??
jerry426 Jan 22, 2009 7:00 PMI have stumbled onto something potentially disturbing where a method call in my xhtml file, showGroupRemoveColumn() in my example below, is redundantly executing the method in the underlying EntityHome class as can be seen in the log snippet below.
Can anyone explain this??
Here's the relevant section from my xhtml file:
<s:div id="relatedGroups" rendered="#{not empty ticket.groups}"> <h:form id="relatedGroupsForm" styleClass="edit"> <rich:panel style="background-color: #DAFF7F;"> <f:facet name="header">Group Relationships</f:facet> <rich:dataTable id="groupList" var="group" value="#{ticket.groups}"> <rich:column width="4%"> <f:facet name="header">Group ID</f:facet> #{group.id} </rich:column> <rich:column width="40%"> <f:facet name="header">Group Name</f:facet> <s:link view="/GroupEdit.xhtml" value="#{group.name}" id="edit"> <f:param name="groupId" value="#{group.id}"/> <f:param name="conversationPropagation" value="none"/> </s:link> </rich:column> <rich:column width="1%" rendered="#{ticketHome.showGroupRemoveColumn()}"> <f:facet name="header">Remove From Group</f:facet> <h:commandLink action="#{ticketHome.removeTicketFromGroup(group.id)}" onclick="if (!confirm('Are you sure you want to remove this Ticket from Group [ #{group.name} ] ?')) return false"> <h:graphicImage value="/img/b_delete.png" title="Remove this Ticket from Group [ #{group.name} ]"/> </h:commandLink> </rich:column> </rich:dataTable> </rich:panel> </h:form> </s:div>
Here's the relevant method from my EntityHome class:
public Boolean showGroupRemoveColumn() { Integer ticketId = getInstance().getId(); Integer groupCount = getInstance().getGroups().size(); log.info("%%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: " + groupCount + " --- " + ticketId); return (groupCount > 1); }
Here's the relevant section of output from my log file:
It starts out with the burst of 10 calls to the method, then it fires off another 28 calls to it shortly afterward. I have observed that the second burst is always 7 times the groupCount value (for example: if groupCount is 7 there would be 49 log entries in the second chunk of them)
12:50:49,798 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,799 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,800 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,800 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,802 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,802 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,803 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,804 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,805 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,806 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,807 INFO [STDOUT] Hibernate: select user0_.id as id62_, user0_.created_dt as created2_62_, user0_.email_address as email3_62_, user0_.enabled as enabled62_, user0_.password as password62_, user0_.real_name as real6_62_, user0_.username as username62_ from prismone_v3.User user0_ where user0_.username=? limit ? 12:50:49,808 INFO [STDOUT] Hibernate: select user0_.id as id62_, user0_.created_dt as created2_62_, user0_.email_address as email3_62_, user0_.enabled as enabled62_, user0_.password as password62_, user0_.real_name as real6_62_, user0_.username as username62_ from prismone_v3.User user0_ where user0_.username=? limit ? 12:50:49,811 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,812 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,814 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,816 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,817 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,831 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,832 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,839 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,840 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,841 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,845 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,846 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,849 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,850 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,855 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,859 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,864 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,865 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,866 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,867 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,868 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,871 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,873 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,873 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,875 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,875 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,876 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188 12:50:49,877 INFO [TicketHome] %%%%%%%%%%%%%%%%% showGroupRemoveColumn() %%%%%%%%%%%%%%%%%: 4 --- 188