Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-12057

camel-olingo2 - Missing encoding for query params

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.20.1
    • 2.20.2, 2.21.0
    • camel-olingo2
    • None
    • spring-boot

    • Patch Available
    • Unknown

    Description

      Hi guys,
      i've a problem with making camel-olingo2 to work with $filter query parameter
      Here is my RouteBuilder situation

      rest("/olingo2")
                      .get("tickets").to("direct:olingo2/tickets");
      
              from("direct:olingo2/tickets")
                      .setHeader("CamelOlingo2.$filter", simple("ReporterEmail eq 'user@company.com'"))
                      .setHeader("CamelOlingo2.$select", simple("ID,Name"))
                      .to("olingo2://read/ServiceRequestCollection")
      

      I get an exception while parsing endpoint URI (a space in uri)

      {{URISyntaxException: Illegal character in query at index 107: https://myXXXXXX.crm.ondemand.com/sap/c4c/odata/v1/c4codata/ServiceRequestCollection/?$filter=ReporterEmail eq 'user@company.com'&$select=ID,Name
      }}

      It comes basically from Olingo2AppImpl:224
      I tried with
      {{ .setHeader("CamelOlingo2.$filter", simple("ReporterEmail%20eq%20%27user@company.com%27"))
      }}but then it fails in Olingo2AppImpl:222 while parsing filter expression.

      As a conclusion, at Olingo2AppImpl:224 queryParams should be encoded.

      here is my patch https://github.com/przem/camel/commit/e239645cadd7130b27cb85bd713cb71140872865

      Attachments

        Issue Links

          Activity

            People

              acosentino Andrea Cosentino
              _przem Przemek Kubicki
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: