Uploaded image for project: 'Commons Jelly'
  1. Commons Jelly
  2. JELLY-212

JellyContext mishandles custom URLs

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.0-RC1
    • None
    • core / taglib.core
    • None

    Description

      The JellyContext assumes all URLs can be decomposed into a String, and then recomposed via a simple "new URL(urlString)" invocation. This causes significant problems when custom URL handlers are involved, since a user may have created a URL and passed in a custom URLHandler. In a case such as this, if the URL is reduced to a String any subsequent reification may result in either a MalformedURLException, or in a new URL with the default system URLHandler rather than the custom handler.

      Of primary concern are the following methods:
      createRelativeURL(URL, String)
      getJellyContextURL(InputSource)
      getJellyContextURL(URL)
      runScript(URL, XMLOutput, boolean, boolean)

      Attached is a subclass of JellyContext, URLFriendlyJellyContext, that resolves many URL-handling issues, assuming that the context is created with a valid URL, and subsequent operations (such as runScript()) pass String arguments that are either absolute or relative paths to be based upon the URL used to initialize the context.

      The content of URLFriendlyJellyContext can easily be merged into the JellyContext class, making JellyContext much more robust when handling custom URLs.

      Attachments

        1. URLFriendlyJellyContext.java
          3 kB
          Thomas Burns

        Activity

          People

            Unassigned Unassigned
            tomb Thomas Burns
            Votes:
            2 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: