On Thu, 13 Jan 2022 01:07:52 GMT, Mark Sheppard <mshep...@openjdk.org> wrote:
>> Rob McKenna has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Allow the test to pass on MacOSX > > src/java.naming/share/classes/com/sun/jndi/ldap/LdapClientFactory.java line > 70: > >> 68: public PooledConnection createPooledConnection(PoolCallback pcb, >> long timeout) >> 69: throws NamingException { >> 70: return new LdapClient(host, port, socketFactory, > > any need to perform sanity check against erroneous negative values on the > timeout supplied here and in other parts of the solution Hmmm... Good point. I had looked into this yesterday when I reviewed - and AFAIU a value <= 0 would be interpreted as no timeout (that is, infinite timeout) - and that seems consistent throughout. It's non obvious - but I convinced myself that passing a negative value here would not necessarily be an error, and would work as expected. However the narrowing down of a negative long to an int doesn't necessarily preserve the sign. @robm-openjdk the conversion from long to int probably needs to also take care of values that are < Integer.MIN_VALUE. jshell> long l = Integer.MIN_VALUE * 2L l ==> -4294967296 jshell> int x = (int)l x ==> 0 jshell> long l = Integer.MIN_VALUE * 2L + 1 l ==> -4294967295 jshell> int x = (int)l x ==> 1 ------------- PR: https://git.openjdk.java.net/jdk/pull/6568