RFR: 8325579: Inconsistent behavior in com.sun.jndi.ldap.Connection::createSocket [v9]
Christoph Langer
clanger at openjdk.org
Wed Mar 20 21:19:38 UTC 2024
> During analysing a customer case I figured out that we have an inconsistency between documentation and actual behavior in class com.sun.jndi.ldap.Connection. The [method documentation of com.sun.jndi.ldap.Connection::createSocket](https://github.com/openjdk/jdk/blob/3ebe6c192a5dd5cc46ae2d263713c9ff38cd46bb/src/java.naming/share/classes/com/sun/jndi/ldap/Connection.java#L281) states: "If a timeout is supplied but unconnected sockets are not supported then the timeout is ignored and a connected socket is created."
>
> This, however does not happen. If a SocketFactory would not support unconnected sockets, it would likely throw a SocketException in [SocketFactory::createSocket()](https://github.com/openjdk/jdk/blob/6303c0e7136436a2d3cb6043b88edf788c0067cc/src/java.base/share/classes/javax/net/SocketFactory.java#L123). And since [the code](https://github.com/openjdk/jdk/blob/3ebe6c192a5dd5cc46ae2d263713c9ff38cd46bb/src/java.naming/share/classes/com/sun/jndi/ldap/Connection.java#L336) does not check for this behavior, a connection with timeout value through a SocketFactory that does not support unconnected sockets would simply fail with an IOException.
>
> So we should either make the code adhere to what is documented or adapt the documentation to the actual behavior.
>
> I hereby try to fix the connect coding. Alternatively, we could also adapt the description - I have no strong opinion. What do the experts suggest?
Christoph Langer has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 14 additional commits since the last revision:
- Review suggestions Aleksei
- Merge branch 'master' into JDK-8325579
- Update module-info text
- Merge branch 'master' into JDK-8325579
- Indentation
- Merge branch 'master' into JDK-8325579
- Review feedback
- Rename back to LdapSSLHandshakeFailureTest to ease reviewing
- Merge branch 'master' into JDK-8325579
- Typo
- ... and 4 more: https://git.openjdk.org/jdk/compare/7b45211e...8fdc039c
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/17797/files
- new: https://git.openjdk.org/jdk/pull/17797/files/10271159..8fdc039c
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=17797&range=08
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=17797&range=07-08
Stats: 292653 lines in 398 files changed: 5187 ins; 5644 del; 281822 mod
Patch: https://git.openjdk.org/jdk/pull/17797.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/17797/head:pull/17797
PR: https://git.openjdk.org/jdk/pull/17797
More information about the core-libs-dev
mailing list