Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-43848

new item categories served without cache expiration

      SInce the introduction of the revamped "new Item" page the list of items that can be populated via an XMLHttpRequest.

      However this is a bad thing to do as the list should not be considered static.

      OSS can add to the list if a plugin is installed.
      Third party extensions can contribute items (and even remove items from the list) dynamically.

      This causes a big issue with IE as by default IE legitimatley caches the responses of an XMLHttpRequest unless told otherwise.

      Workaround is to force a reload after cleaning the cache - but this is bad UX.

      NOTE: there are probably other places in jenkins core that handle XMLHttpRequest requests that are not adding correct cache control headers - this should probably be investigated too.

      Found with IE 11 on windows 10 but likely affects all versions of IE 11 and possibly (but untested Edge)

      Steps to reproduce:

      • Load the New Item page in your IE11 browser
      • Install a new plugin which provides a new Item type
      • Navigate to the new Item page again in your browser

      Observed Behavior:

      • You will not see the new item listed

      Expected Behavior:

      • The new item should show up in the list without a special action or refresh by the user

          [JENKINS-43848] new item categories served without cache expiration

          James Nord added a comment - - edited

          request headers as follows (Cookie stripped):

          Accept: */*
          Accept-Encoding: gzip, deflate
          Accept-Language: en-GB
          Connection: Keep-Alive
          Host: localhost:8080
          Referer: http://localhost:8080/job/folder/job/subfolder/newJob
          User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko
          X-Requested-With: XMLHttpRequest
          

          response headers as follows:

          Content-Encoding: gzip
          Content-Length: 537
          Content-Type: application/json; charset=UTF-8
          Date: Wed, 26 Apr 2017 09:48:41 GMT
          Server: Jetty(9.2.z-SNAPSHOT)
          X-Content-Type-Options: nosniff
          

          James Nord added a comment - - edited request headers as follows (Cookie stripped): Accept: */* Accept-Encoding: gzip, deflate Accept-Language: en-GB Connection: Keep-Alive Host: localhost:8080 Referer: http://localhost:8080/job/folder/job/subfolder/newJob User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko X-Requested-With: XMLHttpRequest response headers as follows: Content-Encoding: gzip Content-Length: 537 Content-Type: application/json; charset=UTF-8 Date: Wed, 26 Apr 2017 09:48:41 GMT Server: Jetty(9.2.z-SNAPSHOT) X-Content-Type-Options: nosniff

          teilo, this is not a UX issue but a simple bug related with IE.

          Manuel Recena Soto added a comment - teilo , this is not a UX issue but a simple bug related with IE.

          James Nord added a comment -

          It is a bug that affects the user experience when the user uses IE.
          UX is surely for all user experience bugs not just the interaction flow/ layout?
          Is there a definition of all the labels meanings on the wiki or somewhere, I could not find it

          James Nord added a comment - It is a bug that affects the user experience when the user uses IE. UX is surely for all user experience bugs not just the interaction flow/ layout? Is there a definition of all the labels meanings on the wiki or somewhere, I could not find it

          Code changed in jenkins
          User: Josiah Haswell
          Path:
          core/src/main/java/hudson/model/View.java
          test/src/test/java/hudson/model/ViewTest.java
          http://jenkins-ci.org/commit/jenkins/34bf393255bb603bb3b0fb921a41fc3916d16f42
          Log:
          [FIX JENKINS-43848] - Lack of cache-invalidation headers results in stale item list (#2973)

          • Saving progress for review
          • Adding licenses
          • Adding integration test for headers
          • Removing proposal for refactoring to method objects
          • Removing whitespace changeswq
          • Fixing test

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Josiah Haswell Path: core/src/main/java/hudson/model/View.java test/src/test/java/hudson/model/ViewTest.java http://jenkins-ci.org/commit/jenkins/34bf393255bb603bb3b0fb921a41fc3916d16f42 Log: [FIX JENKINS-43848] - Lack of cache-invalidation headers results in stale item list (#2973) Saving progress for review Adding licenses Adding integration test for headers Removing proposal for refactoring to method objects Removing whitespace changeswq Fixing test

          Oleg Nenashev added a comment -

          The fix has been integrated towards Jenkins 2.74. Marking it as LTS Candidate

          Oleg Nenashev added a comment - The fix has been integrated towards Jenkins 2.74. Marking it as LTS Candidate

          Code changed in jenkins
          User: Josiah Haswell
          Path:
          core/src/main/java/hudson/model/View.java
          test/src/test/java/hudson/model/ViewTest.java
          http://jenkins-ci.org/commit/jenkins/9a8fdb9ac32702552f156d2898dffe2e67402c46
          Log:
          [FIX JENKINS-43848] - Lack of cache-invalidation headers results in stale item list (#2973)

          • Saving progress for review
          • Adding licenses
          • Adding integration test for headers
          • Removing proposal for refactoring to method objects
          • Removing whitespace changeswq
          • Fixing test

          (cherry picked from commit 34bf393255bb603bb3b0fb921a41fc3916d16f42)

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Josiah Haswell Path: core/src/main/java/hudson/model/View.java test/src/test/java/hudson/model/ViewTest.java http://jenkins-ci.org/commit/jenkins/9a8fdb9ac32702552f156d2898dffe2e67402c46 Log: [FIX JENKINS-43848] - Lack of cache-invalidation headers results in stale item list (#2973) Saving progress for review Adding licenses Adding integration test for headers Removing proposal for refactoring to method objects Removing whitespace changeswq Fixing test (cherry picked from commit 34bf393255bb603bb3b0fb921a41fc3916d16f42)

            jhaswell Josiah Haswell
            teilo James Nord
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: