Hi All,

Please review the patch for LdapURL. Patch fixes the parsing of query part of 
LDAP URL, leaving empty optional fields as null instead of "".

Webrev:
http://goo.gl/OO0V38

Bug:
https://bugs.openjdk.java.net/browse/JDK-8074761

JTreg:
http://goo.gl/ermmoh

Details:

RFC 2255 [1] allows any of the query parameters to be empty. Current 
implementation of parsing method extracts substring without checking for 
length, leaving empty fields as "" instead of null. But the code under 
com.sun.jndi.ldap package checks only for null when handling optional fields. 
So the patch modifies the parsing method to avoid substring operations on 
empty fields and leaving them as null instead.

In proposed patch, I was not able to generalize the code, so using similar 
code blocks to make it obvious if additional changes will be required later.

It would be even better to use java.util.Optional for this, but it will be 
compatibility-breaking change, I'm not sure it worth doing even under 
com.sun.* packages.

There is wider test case in RedHat Bugzilla [2], includes OpenDS setup and 
small client app, shows the difference in results between openldap-clients 
with Java-based implementation. Proposed patch fixes the java client 
behaviour.

[1]: https://tools.ietf.org/html/rfc2255#section-3
[2]: https://bugzilla.redhat.com/show_bug.cgi?id=1194226

-- 
Regards,
    Stas

Reply via email to