Hello Antonio, 2013/3/6 Antonio Sanso <[email protected]>: > Hi Lukas > > On Mar 6, 2013, at 11:48 AM, Lukas Eder wrote: > >> Hello, >> >> I've been stepping through the SlingPostServlet, having a look at its >> code. I feel that there is a potential "code smell" in some of its >> methods. As I'm unsure how the Sling project deals with such >> situations, I felt that posting a mail here before creating an issue >> might be better. >> >> The code I'm talking about is contained in >> registerPostResponseCreator(), where the cachedPostResponseCreators >> attribute is initialised. There are two issues here: >> >> 1. The cachedPostResponseCreators array is re-initialised every time >> this method is invoked. This leads to an unnecessary O(n^2) >> initialisation complexity on componentContext.locateService() method. >> I guess that this cache's whole purpose is to avoid expensive >> locateService() calls, so this should probably be fixed. >> >> 2. A first loop initialises this cachedPostResponseCreators array. In >> a second step, "null" entries are "removed" by copying the array. This >> behaviour is hard to read from the existing code, which is a bit >> verbose. In order to avoid the potential for bugs, I'd like to suggest >> using the (untested) behaviour from the attached patch. > > I am afraid the attachment has been blocked. > You might think to open a JIRA issue.
Sorry about that. Here's the JIRA issue for this problem: https://issues.apache.org/jira/browse/SLING-2774 > Regards > > Antonio > > >> Note that >> other methods, such as registerPostProcessor(), >> registerNodeNameGenerator() suffers from similar "verbosity problems". >> >> Cheers >> Lukas >
