• Icon: Improvement Improvement
    • Resolution: Fixed
    • Icon: Major Major
    • http-request-plugin
    • None
    • http_request:1.8.22

      For the `httpRequest` function, the parameter `validResponseCodes` is described as optional here: https://jenkins.io/doc/pipeline/steps/http_request/

      It would be great if it allowed passing an empty or null string. Doing so currently causes an error in the `parseToRange` method:

      Empty string:

      ```
      08:28:19 java.lang.IllegalArgumentException: Invalid number 08:28:19 at jenkins.plugins.http_request.HttpRequest$DescriptorImpl.parseToRange(HttpRequest.java:419)08:28:19 at jenkins.plugins.http_request.HttpRequestExecution.responseCodeIsValid(HttpRequestExecution.java:299)08:28:19 at jenkins.plugins.http_request.HttpRequestExecution.processResponse(HttpRequestExecution.java:316)08:28:19 at jenkins.plugins.http_request.HttpRequestExecution.authAndRequest(HttpRequestExecution.java:232)08:28:19 at jenkins.plugins.http_request.HttpRequestExecution.call(HttpRequestExecution.java:195)08:28:19 at jenkins.plugins.http_request.HttpRequestExecution.call(HttpRequestExecution.java:67)
      ```

       

      Null value:

      ```
      08:29:02 java.lang.NullPointerException*08:29:02* at jenkins.plugins.http_request.HttpRequest$DescriptorImpl.parseToRange(HttpRequest.java:410)08:29:02 at jenkins.plugins.http_request.HttpRequestExecution.responseCodeIsValid(HttpRequestExecution.java:299)08:29:02 at jenkins.plugins.http_request.HttpRequestExecution.processResponse(HttpRequestExecution.java:316)08:29:02 at jenkins.plugins.http_request.HttpRequestExecution.authAndRequest(HttpRequestExecution.java:232)08:29:02 at jenkins.plugins.http_request.HttpRequestExecution.call(HttpRequestExecution.java:195)08:29:02 at jenkins.plugins.http_request.HttpRequestExecution.call(HttpRequestExecution.java:67)
      ```

       

      The relevant class is here:

      https://github.com/jenkinsci/http-request-plugin/blob/master/src/main/java/jenkins/plugins/http_request/HttpRequest.java

       

      It would also be of great help if `validResponseCodes` was documented with examples on the https://jenkins.io/doc/pipeline/steps/http_request/ page. So that users do not have to go to the source code to figure out that it is a comma-separated string of ranges, for example:

      • '200' to only accept 200
      • '201,300:304' to accept 201 plus 300 to 304

          [JENKINS-57318] validResponseCodes cannot be empty or null

          Martin Mosegaard Amdisen created issue -
          Martin Mosegaard Amdisen made changes -
          Description Original: For the `httpRequest` function, the parameter `validResponseCodes` is described as optional here: [https://jenkins.io/doc/pipeline/steps/http_request/]

          It would be great if it allowed passing an empty or null string. Doing so currently causes an error in the `parseToRange` method:

          Empty string:

          ```
          *08:28:19* java.lang.IllegalArgumentException: Invalid number *08:28:19* at jenkins.plugins.http_request.HttpRequest$DescriptorImpl.parseToRange(HttpRequest.java:419)*08:28:19* at jenkins.plugins.http_request.HttpRequestExecution.responseCodeIsValid(HttpRequestExecution.java:299)*08:28:19* at jenkins.plugins.http_request.HttpRequestExecution.processResponse(HttpRequestExecution.java:316)*08:28:19* at jenkins.plugins.http_request.HttpRequestExecution.authAndRequest(HttpRequestExecution.java:232)*08:28:19* at jenkins.plugins.http_request.HttpRequestExecution.call(HttpRequestExecution.java:195)*08:28:19* at jenkins.plugins.http_request.HttpRequestExecution.call(HttpRequestExecution.java:67)
          ```

           

          Null value:

          ```
          *08:29:02* java.lang.NullPointerException*08:29:02* at jenkins.plugins.http_request.HttpRequest$DescriptorImpl.parseToRange(HttpRequest.java:410)*08:29:02* at jenkins.plugins.http_request.HttpRequestExecution.responseCodeIsValid(HttpRequestExecution.java:299)*08:29:02* at jenkins.plugins.http_request.HttpRequestExecution.processResponse(HttpRequestExecution.java:316)*08:29:02* at jenkins.plugins.http_request.HttpRequestExecution.authAndRequest(HttpRequestExecution.java:232)*08:29:02* at jenkins.plugins.http_request.HttpRequestExecution.call(HttpRequestExecution.java:195)*08:29:02* at jenkins.plugins.http_request.HttpRequestExecution.call(HttpRequestExecution.java:67)
          ```

           

          The relevant class is here:

          [https://github.com/jenkinsci/http-request-plugin/blob/master/src/main/java/jenkins/plugins/http_request/HttpRequest.java]
          New: For the `httpRequest` function, the parameter `validResponseCodes` is described as optional here: [https://jenkins.io/doc/pipeline/steps/http_request/]

          It would be great if it allowed passing an empty or null string. Doing so currently causes an error in the `parseToRange` method:

          Empty string:

          ```
           *08:28:19* java.lang.IllegalArgumentException: Invalid number *08:28:19* at jenkins.plugins.http_request.HttpRequest$DescriptorImpl.parseToRange(HttpRequest.java:419)*08:28:19* at jenkins.plugins.http_request.HttpRequestExecution.responseCodeIsValid(HttpRequestExecution.java:299)*08:28:19* at jenkins.plugins.http_request.HttpRequestExecution.processResponse(HttpRequestExecution.java:316)*08:28:19* at jenkins.plugins.http_request.HttpRequestExecution.authAndRequest(HttpRequestExecution.java:232)*08:28:19* at jenkins.plugins.http_request.HttpRequestExecution.call(HttpRequestExecution.java:195)*08:28:19* at jenkins.plugins.http_request.HttpRequestExecution.call(HttpRequestExecution.java:67)
           ```

           

          Null value:

          ```
           *08:29:02* java.lang.NullPointerException*08:29:02* at jenkins.plugins.http_request.HttpRequest$DescriptorImpl.parseToRange(HttpRequest.java:410)*08:29:02* at jenkins.plugins.http_request.HttpRequestExecution.responseCodeIsValid(HttpRequestExecution.java:299)*08:29:02* at jenkins.plugins.http_request.HttpRequestExecution.processResponse(HttpRequestExecution.java:316)*08:29:02* at jenkins.plugins.http_request.HttpRequestExecution.authAndRequest(HttpRequestExecution.java:232)*08:29:02* at jenkins.plugins.http_request.HttpRequestExecution.call(HttpRequestExecution.java:195)*08:29:02* at jenkins.plugins.http_request.HttpRequestExecution.call(HttpRequestExecution.java:67)
           ```

           

          The relevant class is here:

          [https://github.com/jenkinsci/http-request-plugin/blob/master/src/main/java/jenkins/plugins/http_request/HttpRequest.java]

           

          It would also be of great help if `validResponseCodes` was documented with examples on the [https://jenkins.io/doc/pipeline/steps/http_request/] page. So that users do not have to go to the source code to figure out that it is a comma-separated string of ranges, for example:
           * '200' to only accept 200
           * '201,300:304' to accept 201 plus 300 to 304

          Martin Mosegaard Amdisen added a comment - Proposed fix:  https://github.com/jenkinsci/http-request-plugin/pull/38

          Adam Gabryś added a comment - - edited

          It has been delivered in the 1.8.23 version.

          Adam Gabryś added a comment - - edited It has been delivered in the 1.8.23 version.
          Adam Gabryś made changes -
          Resolution New: Fixed [ 1 ]
          Status Original: Open [ 1 ] New: Closed [ 6 ]

            janario Janario Oliveira
            therealmartinmosegaard Martin Mosegaard Amdisen
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: