Hi,

After logging in to my web app for the first time using an JndiLdapRealm a
connection thread is created.  Although I have not explicitly configured
connection pooling I believe this is default java ldap behaviour.

When I shut tomcat down I get the following SEVERE log message:

SEVERE: The web application [/xyz] appears to have started a thread named
[Thread-56] but has failed to stop it. This is very likely to create a
memory leak.

I took a thread dump and found that the thread in question is this:

"Thread-56" daemon prio=5 tid=7f855906f800 nid=0x11082f000 runnable
[11082e000]

   java.lang.Thread.State: RUNNABLE

at java.net.SocketInputStream.socketRead0(Native Method)

at java.net.SocketInputStream.read(SocketInputStream.java:129)

at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)

at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)

at java.io.BufferedInputStream.read(BufferedInputStream.java:317)

- locked <7dffa0d08> (a java.io.BufferedInputStream)

at com.sun.jndi.ldap.Connection.run(Connection.java:836)

at java.lang.Thread.run(Thread.java:680)


I am destroying my SecurityManager at shutdown.  Is there an easy way to
cleanup these LDAP connection threads?  I saw mention of simply turning off
connection pooling but I don't think that is ideal.


Cheers,


Stuart

Reply via email to