Can I please get a review of this change which addresses an issue in the 
`java.naming` module? 

As noted in https://bugs.openjdk.org/browse/JDK-8273874 when a 
`javax.naming.Context` is constructed backed by a 
`com.sun.jndi.ldap.LdapCtxFactory`, the internal implemenation of `LdapCtx` can 
lead to creation of Threads that are used for the managing connections and for 
managing event notifications. These threads are system threads. However, the 
way they are created currently, they end up capturing the context classloader 
of the calling Thread. This classloader will be held onto as long as these 
Threads stay alive and can thus prevent the classloader from being unreferenced.

The change in this PR replaces the creation of these threads with the 
`InnocuousThread`s, which do not have a context classloader associated with 
them.

A new jtreg test has been introduced to reproduce the issue and verify the fix. 
Existing tests continue to pass with this change.

-------------

Commit messages:
 - add test
 - 8273874: LdapClient can trigger memory leak

Changes: https://git.openjdk.org/jdk/pull/29934/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=29934&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8273874
  Stats: 341 lines in 4 files changed: 330 ins; 5 del; 6 mod
  Patch: https://git.openjdk.org/jdk/pull/29934.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/29934/head:pull/29934

PR: https://git.openjdk.org/jdk/pull/29934

Reply via email to