directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Norval Hope" <nrh...@gmail.com>
Subject Re: ApacheDS LDAP codec streaming
Date Wed, 09 Apr 2008 07:15:25 GMT
Thanks for the response - enjoy your presentations - and even more so your
beer!

Rather the persist with the maven problem observed with 1.5 I'm now trying
out against
http://svn.apache.org/repos/asf/directory/apacheds/branches/1.0-with-dependenciesand
I'm adding some extra log messages in SearchHandler and MINA's
ExecutorFilter for which I'll provide a patch. I'm currently doing runs with
the extra logging to ensure they make the problem clear and will then apply
the patch to the vanilla 1.0 and check that the problem is still observable
on it too. If so then I'll open a JIRA and include the extra debugging patch
plus a bunch of observations of stuff I've noticed in the code that looks a
bit weird, but that may be a result of me not fully understanding how all
the MINA stuff hangs together in AD.

Also I noticed a memory leak in SearchHandler when a search returns no
results which I rectified using the "nhope" commented line below:

            if ( list.hasMore() )
            {
                Iterator it = new SearchResponseIterator( req, ctx, list,
controls.getSearchScope(), session );
                while ( it.hasNext() )
                {
                    final Object        next = it.next();

                    if ( IS_DEBUG )
                    {
                        log.debug( "*** Search: WRITING to session: " +
session.getRemoteAddress() + ": object=" + next);
                    }
                    session.write( next );
                }

                return;
            }
            else
            {
                list.close();
                req.getResultResponse().getLdapResult().setResultCode(
ResultCodeEnum.SUCCESS );
                Iterator it = Collections.singleton( req.getResultResponse()
).iterator();
                while ( it.hasNext() )
                {
                    session.write( it.next() );
                }

                // nhope: seem to leak requests in registry for empty
searches otherwise
                SessionRegistry.getSingleton().removeOutstandingRequest(
session, req.getMessageId() );

                return;
            }
Cheers,
Norval

Mime
View raw message