Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8288207

Enhance MalformedURLException in Uri.parseCompat

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • 20
    • 20
    • core-libs
    • None
    • b03
    • generic
    • generic

      When trying to construct an LdapURL object with a bad input string (in this example the _ in ad_jbs is causing issues), and not using
      the backward compatibility flag -Dcom.sun.jndi.ldapURLParsing="legacy" we run into the exception below :

      import com.sun.jndi.ldap.LdapURL;
       ....
      String url = "ldap://ad_jbs.ttt.net:389/xyz"; // bad input string containing _
      LdapURL ldapUrl = new LdapURL(url);


      java --add-opens java.naming/com.sun.jndi.ldap=ALL-UNNAMED LdapParseUrlTest
      Exception in thread "main" javax.naming.NamingException: Cannot parse url: ldap://ad_jbs.ttt.net:389/xyz [Root exception is java.net.MalformedURLException: unsupported authority: ad_jbs.ttt.net:389]
      at java.naming/com.sun.jndi.ldap.LdapURL.<init>(LdapURL.java:115)
      at LdapParseUrlTest.main(LdapParseUrlTest.java:9)
      Caused by: java.net.MalformedURLException: unsupported authority: ad_jbs.ttt.net:389
      at java.naming/com.sun.jndi.toolkit.url.Uri.parseCompat(Uri.java:367)
      at java.naming/com.sun.jndi.toolkit.url.Uri.parse(Uri.java:230)
      at java.naming/com.sun.jndi.toolkit.url.Uri.init(Uri.java:174)
      at java.naming/com.sun.jndi.ldap.LdapURL.<init>(LdapURL.java:105)

      I would like to add the host and port info to the exception (in the example it is host:port of URI:null:-1] ) so that it is directly visible that the input caused the construction of a URI
      with "special"/problematic host and port values.

            mbaesken Matthias Baesken
            mbaesken Matthias Baesken
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: