Camel
  1. Camel
  2. CAMEL-4954

Camel 2.9.0 incapable of working with % in endpoint URIs

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 2.9.0
    • Fix Version/s: 2.9.1, 2.10.0
    • Component/s: camel-core
    • Labels:
      None
    • Environment:

      Mac 10.7 Java 1.6.0_29

    • Estimated Complexity:
      Unknown

      Description

      In the class org.apache.camel.util.URISupport which will be used to resolve endpoints (DefaultCamelContext#normalizeEndpointUri) the method parseParameters will be called.
      At first the java.net.Uri#getQuery will be called with according to the javadoc "Returns the decoded query component of this URI" returns a decoded URI. If that fails the java.net.Uri#getSchemeSpecificPart method will be called which according to the javadoc "Returns the decoded scheme-specific part of this URI." returns a decoded URI.
      So to summarize we get in any case a decoded URI.
      This URI will then be than in the method org.apache.camel.util.URISupport#parseQuery(String) again decoded with java.net.URLDecoder#decode(String,String).
      This code leads to the following behaviour:
      If a % is properly encoded with %25test the %25test will be substituted by the first call to %test and the decoded again which leads to an Exception.

      In the http://svn.apache.org/viewvc?view=revision&revision=1166508 commit you can see that the % was uncommented from org.apache.camel.util#UnsafeUriCharactersEncoder. Maybe this is related.

      However... Double encoding of URIs seems quite odd. With any URI char there is no issue with that. But with % the % will be decoded again, which makes a % unusable in Camel.

      1. PercentTest.java
        0.7 kB
        Sebastian Rühl

        Issue Links

          Activity

            People

            • Assignee:
              Hadrian Zbarcea
              Reporter:
              Sebastian Rühl
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development