> Can I please get a review of this change which removes the unused 
> `src/java.naming/share/classes/com/sun/jndi/ldap/jndiprovider.properties` 
> file? This addresses the issue noted in 
> https://bugs.openjdk.org/browse/JDK-8296183.
> 
> This `jndiprovider.properties` file lists 3 properties 
> `java.naming.factory.control`, `java.naming.factory.object` and 
> `java.naming.factory.state`. The semantics of these environment properties 
> are explained in 
> https://docs.oracle.com/javase/jndi/tutorial/beyond/env/provider.html. The 
> classes configured in `com/sun/jndi/ldap/jndiprovider.properties` for each of 
> these properties are non-existent in the JDK. Looking at the version control 
> history of the JDK, these classes haven't been around for several releases 
> (not even in JDK 8). The `jndiprovier.properties` gets looked up by an JDK 
> internal class in the `java.naming` module - 
> `com.sun.naming.internal.ResourceManager`. The 
> `ResourceManager.getFactories(...)` method is the one that gets called to 
> load the classes configured for those 3 environment properties. The javadoc 
> of `ResourceManager.getFactories(...)` says this:
> 
> 
> Retrieves an enumeration of factory classes/object specified by a property.
> 
> The property is gotten from the environment and the provider resource file 
> associated with the given context and concatenated.
> ... The resulting property value is a list of class names.
> This method then loads each class using the current thread's context class 
> loader and keeps them in a list.
> Any class that cannot be loaded is ignored.
> ...
> 
> 
> The implementation of `ResourceManager.getFactories(...)` matches that 
> javadoc. Because the implementation ignores such missing classes, the 
> reference to these non-existent classes in the 
> `com/sun/jndi/ldap/jndiprovider.properties` has gone unnoticed all this 
> while. Manual experiments of exercising this code path does indeed show that 
> a `ClassNotFoundException` gets raised (and ignored) for the classes 
> referenced in that `jnidprovider.properties` file.
> 
> The commit in this PR removes the `jndiprovier.properties`. It also removes a 
> javadoc reference to one of these non-existent classes. Given the nature of 
> the change no new tests have been introduced and the existing tests in tier1, 
> tier2 and tier3 continue to pass.

Jaikiran Pai has updated the pull request incrementally with one additional 
commit since the last revision:

  add reference to DefaultResponseControlFactory in javadoc

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/29712/files
  - new: https://git.openjdk.org/jdk/pull/29712/files/1864e84a..b68385a3

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=29712&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=29712&range=00-01

  Stats: 1 line in 1 file changed: 1 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/29712.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/29712/head:pull/29712

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

Reply via email to