Hi All, Just had a question about SearchHandler as I'm reviewing to see if some memory leaks I experienced in the old <1.5.0 release code base have been resolved. As best I can tell (apologies if I'm missing something) there seem to be some different probs in the new implementation regarding calling of session.unregisterOutstandingRequest( req ) (the old impl had some probs in the similar but now defunct use of SessionRegistry): 1. Note that SearchHandler.handleIgnoringReferrals() always calls session.registerOutstandingRequest( req ) immediately on entry 2. When it delegates to handleRootDseSearch() i don't see a corresponding session.unregisterOutstandingRequest( req ) call, isn't one required? 3. I'm not sure what the right behaviour is for handlePersistentSearch(), but I'd expect that logically session.unregisterOutstandingRequest( req ) would need to be called too (or in this case is the req considered to be outstanding indefinitely?) 4. In the other normal search cases, shouldn't session.unregisterOutstandingRequest( req ) be in a finally block so it is also called when exceptions are encountered? 5. The old impl had a memory leak for searches when no results were returned, as best I can tell the new cursor stuff doesn't suffer the same problem but just wanted to throw this boundary case out there for special consideration.
Thanks, Norval
