Uploaded image for project: 'Calcite'
  1. Calcite
  2. CALCITE-2495

Support encoded URLs in calcite.util.Source, and use it for URL->File conversion in tests

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.18.0
    • Component/s: None
    • Labels:
      None

      Description

      URL.getPath() produces %20 when path contains spaces.
      I suggest to rework all the uses of getResource()... to use Sources.of(URL) so there's single point of failure way to convert URL to File.

      This resolves Apache CI which happens to have a space in folder name.

      For the record:
      1) URL.getPath() produces %20, so it is added to forbidden signatures
      2) Paths.get(url.toURI()).toFile() almost works, however it fails with URL is not hierarchical for new URL("file:test.java")
      3) new File(URL.toURI() is worse than #2
      4) URLDecoder must not be used to decode %20, since it will convert + to spaces as well, thus it will corrupt test.c++
      5) It looks like url.toURI().getSchemeSpecificPart()) properly handles "opaque" URIs (which are relative file:test.java kind of URLs)

        Attachments

          Activity

            People

            • Assignee:
              julianhyde Julian Hyde
              Reporter:
              vladimirsitnikov Vladimir Sitnikov
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: