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

Browser freezes when clicking more link on a job to see other builds

      When we click more link on a job to see other builds the browser freezes and prompts saying javascript is taking too long to execute. I started seeing after upgrading to 1.595 unfortunately i cannot recall what version i was on before.

      We see a similar issue when we go to a job that has a lot of jobs in the pending queue. We are not able to scroll on the screen.

          [JENKINS-26445] Browser freezes when clicking more link on a job to see other builds

          Arpit Gupta added a comment - - edited

          /job/JOBNAME/api/xml?tree=builds

          returns 100 lines. however i believe we have a lot more than that.

          When i do RSS of all i get about 694 items.

          Arpit Gupta added a comment - - edited /job/JOBNAME/api/xml?tree=builds returns 100 lines. however i believe we have a lot more than that. When i do RSS of all i get about 694 items.

          Daniel Beck added a comment -

          Try ?tree=allbuilds (or allBuilds) instead. There's some performance optimization to prevent excessive loading of builds.

          Daniel Beck added a comment - Try ?tree=allbuilds (or allBuilds) instead. There's some performance optimization to prevent excessive loading of builds.

          Daniel Beck added a comment -

          So the issue is performance with a very large number of builds. The changes implemented in recent Jenkins make the build history display much better when build names or multiple badges are used, at the cost of additional processing. And I'm fairly sure we want to keep it, as it was pretty bad in some situations before.

          A possible solution would be to change how 'more' works to only reveal an additional 50-100 builds each time rather than all of them, assuming the problem is the number of newly added builds to the list, rather than their total number.

          I pinged tfennelly about this, who did all the recent work on the build history widget.

          Daniel Beck added a comment - So the issue is performance with a very large number of builds. The changes implemented in recent Jenkins make the build history display much better when build names or multiple badges are used, at the cost of additional processing. And I'm fairly sure we want to keep it, as it was pretty bad in some situations before. A possible solution would be to change how 'more' works to only reveal an additional 50-100 builds each time rather than all of them, assuming the problem is the number of newly added builds to the list, rather than their total number. I pinged tfennelly about this, who did all the recent work on the build history widget.

          Arpit Gupta added a comment -

          Today we have about 807 (using api/xml?tree=allBuilds) jobs.

          Also we noticed if a job has a lot of builds in queue (100 builds Waiting for executors to free up) and you go to the job page of the job waiting for executors scrolling comes to a standstill as well trying to do another build etc. Basically any interaction on the job page became super slow.

          Arpit Gupta added a comment - Today we have about 807 (using api/xml?tree=allBuilds) jobs. Also we noticed if a job has a lot of builds in queue (100 builds Waiting for executors to free up) and you go to the job page of the job waiting for executors scrolling comes to a standstill as well trying to do another build etc. Basically any interaction on the job page became super slow.

          Arpit Gupta added a comment -

          Any updates? At this point we are looking in to downgrading jenkins as this severely impacts productivity of our team. Even when there are only a few hundred jobs browser becomes un responsive.

          Arpit Gupta added a comment - Any updates? At this point we are looking in to downgrading jenkins as this severely impacts productivity of our team. Even when there are only a few hundred jobs browser becomes un responsive.

          Tom FENNELLY added a comment -

          Hi Arpit. Sorry about this. I am looking into it now.

          I actually did test this back when I was rejigging things with the build history widget to make it layout a bit better, in that, I created a test job that had a few hundred builds and, to be honest, I could not notice a difference between performance of the new and old layout code. It was dog slow in either case !

          How that history widget works is a bit insane anyway. Rendering anything more than 50 or so jobs seems bad UX to me from may perspectives (performance, navigation etc).

          I think what Daniel says re the more button only showing a few more builds makes sense. In fact, I would go a step further and implement a paging mechanism whereby you have your standard "Prev" and "Next" buttons in the history widget and you never display more than 50 or so builds. I'm sure someone will have an issue with that though

          Tom FENNELLY added a comment - Hi Arpit. Sorry about this. I am looking into it now. I actually did test this back when I was rejigging things with the build history widget to make it layout a bit better, in that, I created a test job that had a few hundred builds and, to be honest, I could not notice a difference between performance of the new and old layout code. It was dog slow in either case ! How that history widget works is a bit insane anyway. Rendering anything more than 50 or so jobs seems bad UX to me from may perspectives (performance, navigation etc). I think what Daniel says re the more button only showing a few more builds makes sense. In fact, I would go a step further and implement a paging mechanism whereby you have your standard "Prev" and "Next" buttons in the history widget and you never display more than 50 or so builds. I'm sure someone will have an issue with that though

          Arpit Gupta added a comment -

          Thanks for looking into this @Tom

          Pagination makes sense to me but i agree there will be some one who does not like it .

          Also do you think the issues on the build page are related to this? What we see is if you have a lot of builds in queue and i select build now with parameters 2 things happen

          1. The scroll bar keeps getting reset to the top
          2. Scrolling in general becomes really slow.

          Let me know if that should be tracked in a separate bug.

          Arpit Gupta added a comment - Thanks for looking into this @Tom Pagination makes sense to me but i agree there will be some one who does not like it . Also do you think the issues on the build page are related to this? What we see is if you have a lot of builds in queue and i select build now with parameters 2 things happen 1. The scroll bar keeps getting reset to the top 2. Scrolling in general becomes really slow. Let me know if that should be tracked in a separate bug.

          Tom FENNELLY added a comment -

          Arpit, I think any other issues should be tracked in a separate JIRA. You can always reference this one suggesting the issues might be related. Don't forget to mention the Jenkins version number etc in case the issue has already been fixed (maybe try latest release if you can) etc.

          Tom FENNELLY added a comment - Arpit, I think any other issues should be tracked in a separate JIRA. You can always reference this one suggesting the issues might be related. Don't forget to mention the Jenkins version number etc in case the issue has already been fixed (maybe try latest release if you can) etc.

          Daniel Beck added a comment -

          Pagination has the problem that it's not just historical info but also queued and currently running build. So you could completely miss builds by being on page 2, despite AJAX. Plus, build to page mappings will change (shift) rapidly if builds are quick and frequent.

          Daniel Beck added a comment - Pagination has the problem that it's not just historical info but also queued and currently running build. So you could completely miss builds by being on page 2, despite AJAX. Plus, build to page mappings will change (shift) rapidly if builds are quick and frequent.

          Tom FENNELLY added a comment - - edited

          Daniel: that would seem right to me tbh. Would be the reverse analogy of tailing a log i.e. once you move away from the tail you stop tailing it. Once you move away from the top of the build history you stop checking for updates until you go back to the top.

          Bottom line... you can't have your cake and eat it

          Tom FENNELLY added a comment - - edited Daniel: that would seem right to me tbh. Would be the reverse analogy of tailing a log i.e. once you move away from the tail you stop tailing it. Once you move away from the top of the build history you stop checking for updates until you go back to the top. Bottom line... you can't have your cake and eat it

          Arpit Gupta added a comment -

          @Tom and @Daniel logged JENKINS-26571 for the build now page.

          Arpit Gupta added a comment - @Tom and @Daniel logged JENKINS-26571 for the build now page.

          Tom FENNELLY added a comment -

          Posted a request for opinions to the dev list: https://groups.google.com/forum/?hl=en#!topic/jenkinsci-dev/NK_1ALzC6bg

          Tom FENNELLY added a comment - Posted a request for opinions to the dev list: https://groups.google.com/forum/?hl=en#!topic/jenkinsci-dev/NK_1ALzC6bg

          Arpit Gupta added a comment -

          I upgrade to 1.598 and now when i click configure i get

          A script on this page may be busy, or it may have stopped responding. You can stop the script now, open the script in the debugger, or let the script continue.
          
          Script: http://IP:8080/adjuncts/19e9c96a/org/kohsuke/stapler/codemirror/lib/codemirror.js:1737
          

          Added it here in case they are related. Also added the same message to the related bug.

          Arpit Gupta added a comment - I upgrade to 1.598 and now when i click configure i get A script on this page may be busy, or it may have stopped responding. You can stop the script now, open the script in the debugger, or let the script continue . Script: http: //IP:8080/adjuncts/19e9c96a/org/kohsuke/stapler/codemirror/lib/codemirror.js:1737 Added it here in case they are related. Also added the same message to the related bug.

          Arpit Gupta added a comment -

          Here is another use case for the more widget. I have seen scenario's where the job page shows no running jobs but there is a build running. It did not make the default number of builds we show on the job page. It would be nice if we a running jobs widget also. Let me know if you think this should be tracked in a different enhancement ticket.

          Arpit Gupta added a comment - Here is another use case for the more widget. I have seen scenario's where the job page shows no running jobs but there is a build running. It did not make the default number of builds we show on the job page. It would be nice if we a running jobs widget also. Let me know if you think this should be tracked in a different enhancement ticket.

          Code changed in jenkins
          User: Tom Fennelly
          Path:
          core/src/main/java/hudson/model/Queue.java
          core/src/main/java/hudson/model/Run.java
          core/src/main/java/hudson/model/queue/WorkUnit.java
          test/src/test/java/hudson/model/QueueTest.java
          test/src/test/resources/hudson/model/QueueTest/recover_from_legacy_list.zip
          http://jenkins-ci.org/commit/jenkins/e88bf5694b7f64c833cc991447d511a964c10683
          Log:
          Merge pull request #1566 from tfennelly/JENKINS-26445

          Permanently valid Queue.Item.id

          Compare: https://github.com/jenkinsci/jenkins/compare/419d670cd0f6...e88bf5694b7f

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Tom Fennelly Path: core/src/main/java/hudson/model/Queue.java core/src/main/java/hudson/model/Run.java core/src/main/java/hudson/model/queue/WorkUnit.java test/src/test/java/hudson/model/QueueTest.java test/src/test/resources/hudson/model/QueueTest/recover_from_legacy_list.zip http://jenkins-ci.org/commit/jenkins/e88bf5694b7f64c833cc991447d511a964c10683 Log: Merge pull request #1566 from tfennelly/ JENKINS-26445 Permanently valid Queue.Item.id Compare: https://github.com/jenkinsci/jenkins/compare/419d670cd0f6...e88bf5694b7f

          Tom FENNELLY added a comment -

          Created PR #1641 around efforts to address the issue of huge build histories. Hopefully there'll be a CI build available soon (from CI PR builder).

          Please try this out and let us know what works, doesn't work, is missing etc

          Tom FENNELLY added a comment - Created PR #1641 around efforts to address the issue of huge build histories. Hopefully there'll be a CI build available soon (from CI PR builder). Please try this out and let us know what works, doesn't work, is missing etc

          Arpit Gupta added a comment -

          Thanks Tom. Will keep an eye out for a new release with this fix in and try it out.

          Arpit Gupta added a comment - Thanks Tom. Will keep an eye out for a new release with this fix in and try it out.

          Tom FENNELLY added a comment -

          Tom FENNELLY added a comment - @Arpit you can get it from the CI server here .

          Arpit Gupta added a comment -

          Ah i see. Let me see how i can test this out. I am little hesitant to put a new war in our production instance so will probably setup a test instance where i can play with this release.

          Arpit Gupta added a comment - Ah i see. Let me see how i can test this out. I am little hesitant to put a new war in our production instance so will probably setup a test instance where i can play with this release.

          Tom FENNELLY added a comment -

          @Arpit for sure ... just download that CI build and test it in a test environment and at least provide some initial feedback. It would be great if we could have a test run against some real data too though so as to test the performance. Do you have a Staging environment where you can test using a clone of some real data?

          Tom FENNELLY added a comment - @Arpit for sure ... just download that CI build and test it in a test environment and at least provide some initial feedback. It would be great if we could have a test run against some real data too though so as to test the performance. Do you have a Staging environment where you can test using a clone of some real data?

          Arpit Gupta added a comment -

          Unfortunately not . Have various jenkins masters but they are all production instances. When i mean production they are not externally facing. Its a production instance for our QE group.

          Arpit Gupta added a comment - Unfortunately not . Have various jenkins masters but they are all production instances. When i mean production they are not externally facing. Its a production instance for our QE group.

          Tom FENNELLY added a comment -

          @Arpit Can you make a copy of it (or part of it containing an interesting build)?

          Tom FENNELLY added a comment - @Arpit Can you make a copy of it (or part of it containing an interesting build)?

          Arpit Gupta added a comment -

          Thats a good idea. We are already running backup of jenkins (without the build info) i can use that to set on up and just copy over the builds. Will try to get that running this week.

          Arpit Gupta added a comment - Thats a good idea. We are already running backup of jenkins (without the build info) i can use that to set on up and just copy over the builds. Will try to get that running this week.

          Tom FENNELLY added a comment -

          Thanks Arpit. Would it be possible for us to do a screenshare when you are testing so I can see it in action? Skype, Hangouts or whatever would be good.

          Tom FENNELLY added a comment - Thanks Arpit. Would it be possible for us to do a screenshare when you are testing so I can see it in action? Skype, Hangouts or whatever would be good.

          Arpit Gupta added a comment - - edited

          Once i have it setup will update the jira with the details. BTW new downloads of jenkins are failing. Logged INFRA-270

          Arpit Gupta added a comment - - edited Once i have it setup will update the jira with the details. BTW new downloads of jenkins are failing. Logged INFRA-270

          Arpit Gupta added a comment - - edited

          Ok i have the instance setup. @Tom what time zone are you in? We can figure out a time that works for both.

          Here is my feedback most of its nice to have as i would use this as is. (Have not tried running builds yet to see how this works with that). Love the search feature and works like a charm.

          1. Does it make sense to have pagination links available at the top and bottom and with numbers like page 1 of x and total build count displayed and available etc. Do not know what is best way to display it but feel like having that info is useful
          2. Does it make sense to show running builds in its own module and completed builds in its own? We can use the search feature also. As i have seen cases where we have had x builds run and are shown and a running build will be on a different page. We can easily just search for it but thought i would bring it up. Since its not a regression from earlier behavior i can log a different jira.
          3. Adding some validation when the user does not provide the expected search format will be good to have.

          All in all this is great. Now when can i get it in the released artifact .

          Arpit Gupta added a comment - - edited Ok i have the instance setup. @Tom what time zone are you in? We can figure out a time that works for both. Here is my feedback most of its nice to have as i would use this as is. (Have not tried running builds yet to see how this works with that). Love the search feature and works like a charm. 1. Does it make sense to have pagination links available at the top and bottom and with numbers like page 1 of x and total build count displayed and available etc. Do not know what is best way to display it but feel like having that info is useful 2. Does it make sense to show running builds in its own module and completed builds in its own? We can use the search feature also. As i have seen cases where we have had x builds run and are shown and a running build will be on a different page. We can easily just search for it but thought i would bring it up. Since its not a regression from earlier behavior i can log a different jira. 3. Adding some validation when the user does not provide the expected search format will be good to have. All in all this is great. Now when can i get it in the released artifact .

          Arpit Gupta added a comment -

          Oh and here is another
          4. Allow the user to define how many builds per page. Ideally defaults defined at jenkins config level and allow override at job level. The defaults can be what the defaults are today.

          Arpit Gupta added a comment - Oh and here is another 4. Allow the user to define how many builds per page. Ideally defaults defined at jenkins config level and allow override at job level. The defaults can be what the defaults are today.

          Daniel Beck added a comment -

          4. Allow the user to define how many builds per page. Ideally defaults defined at jenkins config level and allow override at job level. The defaults can be what the defaults are today.

          Should probably be postponed until it works well and we see whether there's an actual need for this. I cannot remember anybody requesting a different number of builds shown by default for the current UI, so my guess is this is not really necessary.

          Daniel Beck added a comment - 4. Allow the user to define how many builds per page. Ideally defaults defined at jenkins config level and allow override at job level. The defaults can be what the defaults are today. Should probably be postponed until it works well and we see whether there's an actual need for this. I cannot remember anybody requesting a different number of builds shown by default for the current UI, so my guess is this is not really necessary.

          Arpit Gupta added a comment -

          Makes sense. I would say all my points except for #3 probably can be done as improvements based on larger feedback. Even #3 is not that big a deal.

          Arpit Gupta added a comment - Makes sense. I would say all my points except for #3 probably can be done as improvements based on larger feedback. Even #3 is not that big a deal.

          Tom FENNELLY added a comment -

          @Arpit thanks for the feedback. It seems like there are objections to these changes in their current form (see the PR) so we might have to go back to the drawing board. I'm committed to a load of other work too (was doing this in spare 10 mins here and there) so, unless this is a big issue for you, we might have to put it on ice for a while until there's some sort of consensus (among the people that have the problem) re how best to address it.

          Tom FENNELLY added a comment - @Arpit thanks for the feedback. It seems like there are objections to these changes in their current form ( see the PR ) so we might have to go back to the drawing board. I'm committed to a load of other work too (was doing this in spare 10 mins here and there) so, unless this is a big issue for you, we might have to put it on ice for a while until there's some sort of consensus (among the people that have the problem) re how best to address it.

          Arpit Gupta added a comment -

          Thanks Tom i added my 2c to the pull request. Lets see if that helps .

          Arpit Gupta added a comment - Thanks Tom i added my 2c to the pull request. Lets see if that helps .

          Krzysztof Malinowski added a comment - Also have this problem when there is a long list of builds. Firefox developer tools console logs: Error: Script terminated by timeout at: Element.Methods.removeClassName@ https://server:8080/static/63938483/scripts/prototype.js:2371:9 getElementOverflowParams@ https://server:8080/static/63938483/scripts/hudson-behavior.js:1952:5 checkRowCellOverflows@ https://server:8080/static/63938483/scripts/hudson-behavior.js:1693:37 checkAllRowCellOverflows@ https://server:8080/static/63938483/scripts/hudson-behavior.js:1883:13 updateBuilds/<.onSuccess@ https://server:8080/static/63938483/scripts/hudson-behavior.js:1927:21 Ajax.Request<.respondToReadyState@ https://server:8080/static/63938483/scripts/prototype.js:1655:10 Ajax.Request<.onStateChange@ https://server:8080/static/63938483/scripts/prototype.js:1600:7 bind/<@ https://server:8080/static/63938483/scripts/prototype.js:414:14

          Chris Z added a comment - - edited

          Hi,

          Dirty hack to get whole build history is appending buildHistory/all to the job name in URL. And it show whole history without CSS style as it response is <div> element which is used in jenkins.

          Chris Z added a comment - - edited Hi, Dirty hack to get whole build history is appending buildHistory/all to the job name in URL. And it show whole history without CSS style as it response is <div> element which is used in jenkins.

          Arpit Gupta added a comment -

          that is nice to know thanks Chris.

          Arpit Gupta added a comment - that is nice to know thanks Chris.

          Chris Z added a comment - - edited

          I found that Jenkins 1.593 introduce those changes that crash web browser. It seems that there is some JS issue.

          P.S.
          I have made simple PHP script which wrapps buildhistory/all and adds CSS to it. I will add it later.

          One will have to replace with it's own values:

          • <yourjenkins_addr> jenkins address
          • <place_in_memory> probably that is name of cell in memory where css and js files are visible, you need to check you running jenkins instance source to find correct value e.g
            href="/static/454a6933/css/style.css"

          Additional remark, user can add link to this php script and script will get job name from referre section or you can add name variable. e.g:
          buildhistory.php?name=my_job_name

          <html>
          <head>
          <link rel="stylesheet" type="text/css" href="http://<yourjenkins_addr>/static/<place_in_memory>/css/style.css">
          <link rel="stylesheet" type="text/css" href="http://<yourjenkins_addr>/static/<place_in_memory>/css/color.css">
          <link rel="stylesheet" type="text/css" href="http://<yourjenkins_addr>/static/<place_in_memory>/css/responsive-grid.css">
          <link rel="stylesheet" type="text/css" href="http://<yourjenkins_addr>/static/<place_in_memory>/scripts/yui/container/assets/container.css">
          <link rel="stylesheet" type="text/css" href="http://<yourjenkins_addr>/static/<place_in_memory>/scripts/yui/assets/skins/sam/skin.css">
          <link rel="stylesheet" type="text/css" href="http://<yourjenkins_addr>/static/<place_in_memory>/scripts/yui/container/assets/skins/sam/container.css">
          <style>
          .col-xs-24 {
              width: 300px;
          }
          .row {
              margin-right: -15px;
              margin-left: -15px;
              width: 300px;
          }
          </style>
          </head>
          <body>
          <?php 
          $from_who = end(explode("/",rtrim(($_SERVER["HTTP_REFERER"]),"/")));
          
          if(isset($_GET['name'])) {
              $job_name = htmlspecialchars($_GET["name"]);
          }
          else{
              $job_name = $from_who;
          }
          
          if ($job_name != "" ){
          
              $content = file_get_contents("http://<yourjenkins_addr>/job/".$job_name."/buildHistory/all");
              $content = str_replace("src=\"/static", "src=\"http://<yourjenkins_addr>/static", $content);
              $content = str_replace("href=\"/job", "href=\"http://<yourjenkins_addr>/job", $content);
          
              print $content;
          
          }
          else{
          
          print "Error occured ! No information about job name.<br><br> Try to add to buildhistory.php<b>?name=&lt;jobname&gt;</b>";
          
          }
          ?>
          </body>
          </html>
          

          Chris Z added a comment - - edited I found that Jenkins 1.593 introduce those changes that crash web browser. It seems that there is some JS issue. P.S. I have made simple PHP script which wrapps buildhistory/all and adds CSS to it. I will add it later. One will have to replace with it's own values: <yourjenkins_addr> jenkins address <place_in_memory> probably that is name of cell in memory where css and js files are visible, you need to check you running jenkins instance source to find correct value e.g href="/static/454a6933/css/style.css" Additional remark , user can add link to this php script and script will get job name from referre section or you can add name variable. e.g: buildhistory.php?name=my_job_name <html> <head> <link rel="stylesheet" type="text/css" href="http://<yourjenkins_addr>/static/<place_in_memory>/css/style.css"> <link rel="stylesheet" type="text/css" href="http://<yourjenkins_addr>/static/<place_in_memory>/css/color.css"> <link rel="stylesheet" type="text/css" href="http://<yourjenkins_addr>/static/<place_in_memory>/css/responsive-grid.css"> <link rel="stylesheet" type="text/css" href="http://<yourjenkins_addr>/static/<place_in_memory>/scripts/yui/container/assets/container.css"> <link rel="stylesheet" type="text/css" href="http://<yourjenkins_addr>/static/<place_in_memory>/scripts/yui/assets/skins/sam/skin.css"> <link rel="stylesheet" type="text/css" href="http://<yourjenkins_addr>/static/<place_in_memory>/scripts/yui/container/assets/skins/sam/container.css"> <style> .col-xs-24 { width: 300px; } .row { margin-right: -15px; margin-left: -15px; width: 300px; } </style> </head> <body> <?php $from_who = end(explode("/",rtrim(($_SERVER["HTTP_REFERER"]),"/"))); if(isset($_GET['name'])) { $job_name = htmlspecialchars($_GET["name"]); } else{ $job_name = $from_who; } if ($job_name != "" ){ $content = file_get_contents("http://<yourjenkins_addr>/job/".$job_name."/buildHistory/all"); $content = str_replace("src=\"/static", "src=\"http://<yourjenkins_addr>/static", $content); $content = str_replace("href=\"/job", "href=\"http://<yourjenkins_addr>/job", $content); print $content; } else{ print "Error occured ! No information about job name.<br><br> Try to add to buildhistory.php<b>?name=&lt;jobname&gt;</b>"; } ?> </body> </html>

          Chris Z added a comment - - edited

          Hi,

          function checkAllRowCellOverflows(); is the reason that for big amount of builds web browser can't handle operations which are introduced in that function. Changes were done to correct Build History layout. (issue 25381, issue 25393, issue 24687, issue 24589)

          I commented those lines and clicking more in build history provides proper output.

          diff --git a/war/src/main/webapp/scripts/hudson-behavior.js b/war/src/main/webapp/scripts/hudson-behavior.js
          index 270ab19..9a8b6a2 100644
          --- a/war/src/main/webapp/scripts/hudson-behavior.js
          +++ b/war/src/main/webapp/scripts/hudson-behavior.js
          @@ -1924,7 +1924,7 @@ function updateBuildHistory(ajaxUrl,nBuild) {
                               bh.headers = ["n",rsp.getResponseHeader("n")];
                               window.setTimeout(updateBuilds, updateBuildsRefreshInterval);
          
          -                    checkAllRowCellOverflows();
          +                    //checkAllRowCellOverflows();
                           }
                       });
                   } else {
          @@ -1934,9 +1934,9 @@ function updateBuildHistory(ajaxUrl,nBuild) {
               }
               window.setTimeout(updateBuilds, updateBuildsRefreshInterval);
          
          -    onBuildHistoryChange(function() {
          -        checkAllRowCellOverflows();
          -    });
          +    //onBuildHistoryChange(function() {
          +    //    checkAllRowCellOverflows();
          +    //});
           }
          
           function getElementOverflowParams(element) {
          

          This isn't a solution but quick check (PoC). I checked the checkAllRowCellOverflows code and there are HTML/DOM/website element manipulations which cause that web browser for many builds can't handle it (add element, remove element, add once again element and remove once again). My test job has 25k of builds in the history.

          Important
          Here comes the biggest question. With adding checkAllRowCellOverflows in the Jenkins there is now limitation for buildhistory which can be shown in web browser or rather to say what amount of data web browser can handle with this JS.

          Is there any Jenkins page with good practices or general rules for leaving builds history ? Should we start some discussion on this ?

          P.S.
          I will try to do some tests (how much time and how many operations this function do) to have data on which we could discuss or maybe find place what can be improved.

          Chris Z added a comment - - edited Hi, function checkAllRowCellOverflows(); is the reason that for big amount of builds web browser can't handle operations which are introduced in that function. Changes were done to correct Build History layout. (issue 25381, issue 25393, issue 24687, issue 24589) I commented those lines and clicking more in build history provides proper output. diff --git a/war/src/main/webapp/scripts/hudson-behavior.js b/war/src/main/webapp/scripts/hudson-behavior.js index 270ab19..9a8b6a2 100644 --- a/war/src/main/webapp/scripts/hudson-behavior.js +++ b/war/src/main/webapp/scripts/hudson-behavior.js @@ -1924,7 +1924,7 @@ function updateBuildHistory(ajaxUrl,nBuild) { bh.headers = ["n",rsp.getResponseHeader("n")]; window.setTimeout(updateBuilds, updateBuildsRefreshInterval); - checkAllRowCellOverflows(); + //checkAllRowCellOverflows(); } }); } else { @@ -1934,9 +1934,9 @@ function updateBuildHistory(ajaxUrl,nBuild) { } window.setTimeout(updateBuilds, updateBuildsRefreshInterval); - onBuildHistoryChange(function() { - checkAllRowCellOverflows(); - }); + //onBuildHistoryChange(function() { + // checkAllRowCellOverflows(); + //}); } function getElementOverflowParams(element) { This isn't a solution but quick check (PoC). I checked the checkAllRowCellOverflows code and there are HTML/DOM/website element manipulations which cause that web browser for many builds can't handle it (add element, remove element, add once again element and remove once again). My test job has 25k of builds in the history. Important Here comes the biggest question. With adding checkAllRowCellOverflows in the Jenkins there is now limitation for buildhistory which can be shown in web browser or rather to say what amount of data web browser can handle with this JS. Is there any Jenkins page with good practices or general rules for leaving builds history ? Should we start some discussion on this ? P.S. I will try to do some tests (how much time and how many operations this function do) to have data on which we could discuss or maybe find place what can be improved.

          Daniel Beck added a comment -

          There's a proposal to add pagination and search/filtering to the builds widget which would resolve this issue by not showing a single long list of everything ever.

          Daniel Beck added a comment - There's a proposal to add pagination and search/filtering to the builds widget which would resolve this issue by not showing a single long list of everything ever.

          Chris Z added a comment - - edited

          Hi Daniel,

          Did Tom contact you with finding from last week ?
          For correct builds in build.xml there is <queueId> _ build ID number_ </queueId> where for old builds there is value =-1 and Tom's improvement doesn't work.

          Chris Z added a comment - - edited Hi Daniel, Did Tom contact you with finding from last week ? For correct builds in build.xml there is <queueId> _ build ID number_ </queueId> where for old builds there is value =-1 and Tom's improvement doesn't work.

          Daniel Beck added a comment -

          winotu Right. Doesn't invalidate the entire approach though I think. It's a work in progress after all.

          Daniel Beck added a comment - winotu Right. Doesn't invalidate the entire approach though I think. It's a work in progress after all.

          Tom FENNELLY added a comment -

          danielbeck & winotu

          As Daniel says, this is a WiP and the issue Chris is having is just something that needs fixing. I never got back to it because of other work commitments.

          Anyway, I think the issue Chris is seeing is related to the implementation of the HistoryPageEntry.getEntryId method. It seems like it is returning Run.QUEUE_ID_UNKNOWN (i.e. -1) when asked for a queueId of an "old" run. By "old" I mean a Run that predates the Jenkins core changes to map Queue.Item.Id onto Run (so as to allow tracking from build queue Item to the subsequent Run instance).

          The HistoryPageEntry.getEntryId method is implemented such that it should "fake" a queue ID for a Run instance that doesn't have one (i.e. predating the JENKINS-27096 changes). It is supposed to fake it via Integer.MIN_VALUE + run.getNumber() i.e. using the Run's number. From what Chris told me on IRC, it sounds as though this is not happening in his case. Instead, it sounded like Run.QUEUE_ID_UNKNOWN was being returned from the last block. That seems really strange though as it means the entry instance is neither a Queue.Item or Run instance (I can't see how it could be null). Anyway, it seems like a debugger needs to be connected to this code to see what's happening.

          Tom FENNELLY added a comment - danielbeck & winotu As Daniel says, this is a WiP and the issue Chris is having is just something that needs fixing. I never got back to it because of other work commitments. Anyway, I think the issue Chris is seeing is related to the implementation of the HistoryPageEntry.getEntryId method. It seems like it is returning Run.QUEUE_ID_UNKNOWN (i.e. -1) when asked for a queueId of an "old" run. By "old" I mean a Run that predates the Jenkins core changes to map Queue.Item.Id onto Run (so as to allow tracking from build queue Item to the subsequent Run instance). The HistoryPageEntry.getEntryId method is implemented such that it should "fake" a queue ID for a Run instance that doesn't have one (i.e. predating the JENKINS-27096 changes). It is supposed to fake it via Integer.MIN_VALUE + run.getNumber() i.e. using the Run's number . From what Chris told me on IRC, it sounds as though this is not happening in his case. Instead, it sounded like Run.QUEUE_ID_UNKNOWN was being returned from the last block . That seems really strange though as it means the entry instance is neither a Queue.Item or Run instance (I can't see how it could be null ). Anyway, it seems like a debugger needs to be connected to this code to see what's happening.

          Chris Z added a comment -

          Thanks Tom for comments, I will prepare test workspace to recreate my issue with old workspace structure.

          P.S.
          For those who has running Jenkins instance you can comment out the javascript where Jenkins was unpacked e.g
          ${JETTY_HOME}/war/scripts/hudson-behavior.js

          and after CTRL+F5, More should load whole history without crash.

          This will work only until restart of Jenkins instance

          P.S.2
          Thx to my colleague that he pointed that to me.

          Chris Z added a comment - Thanks Tom for comments, I will prepare test workspace to recreate my issue with old workspace structure. P.S. For those who has running Jenkins instance you can comment out the javascript where Jenkins was unpacked e.g ${JETTY_HOME}/war/scripts/hudson-behavior.js and after CTRL+F5, More should load whole history without crash. This will work only until restart of Jenkins instance P.S.2 Thx to my colleague that he pointed that to me.

          jerome vacher added a comment -

          May I suggest to reuse the method used to display the trend page ...
          It seems to be cleverly written with progress bar if required ..
          Or then make it a common method to display full list of builds ..
          (even if I know, it is better to clean usefulness builds.)

          jerome vacher added a comment - May I suggest to reuse the method used to display the trend page ... It seems to be cleverly written with progress bar if required .. Or then make it a common method to display full list of builds .. (even if I know, it is better to clean usefulness builds.)

          Chris Z added a comment - - edited

          Time checks from hudson-behavior.js @ checkAllRowCellOverflows();

          Tested on :
          i5 2,7GHz, 16GB RAM

          For 100 builds in empty job:
          Check rows overflow 1057 ms
          insert zws in displayname 4,2 ms

          For 1000 builds in empty job:
          Check rows overflow 73089 ms
          insert zws in displayname 35,1 ms

          Additional checks (averge of 100 builds):

          1st section 0,064565448 ms
          2nd section 6,495219458 ms
          reset section 0,33671727 ms
          end section 2,153319466 ms

          Where:

          Check rows overflow:

                  for (var i = 0; i < rows.length; i++) {
                      var row = rows[i];
                      checkRowCellOverflows(row);
                  }
          

          insert zws in displayname:

                  var displayNames = $(bh).getElementsBySelector('.display-name');
                  for (var i = 0; i < displayNames.length; i++) {
                      insertZeroWidthSpacesInElementText(displayNames[i], 2);
                  }
          

          1st section:

          1629:        var displayName = $(buildName).getElementsBySelector('.display-name')[0];
                  var buildControls = $(row).getElementsBySelector('.build-controls')[0];
                  var desc;
          
                  var descElements = $(row).getElementsBySelector('.desc');
                  if (descElements.length > 0) {
                      desc = descElements[0];
                  }
          

          2nd section:

          1662:        // Insert zero-width spaces so as to allow text to wrap, allowing us to get the true clientWidth.
                  insertZeroWidthSpacesInElementText(displayName, 2);
          ....
          .....
                  if (nameOverflowParams.isOverflowed) {
                      // If the name is overflowed, lets remove the zero-width spaces we added above and
                      // re-add zero-width spaces with a bigger max word sizes.
                      removeZeroWidthSpaces(displayName);
                      insertZeroWidthSpacesInElementText(displayName, 20);
          1684:        }
          

          reset section:

          resetCellOverflows();
          

          end section:

          1751:       if (nameOverflowParams.isOverflowed || detailsOverflowParams.isOverflowed) {
          .......
          1866:  Element.addClassName(row, "overflow-checked");
          

          Chris Z added a comment - - edited Time checks from hudson-behavior.js @ checkAllRowCellOverflows(); Tested on : i5 2,7GHz, 16GB RAM For 100 builds in empty job: Check rows overflow 1057 ms insert zws in displayname 4,2 ms For 1000 builds in empty job: Check rows overflow 73089 ms insert zws in displayname 35,1 ms Additional checks (averge of 100 builds): 1st section 0,064565448 ms 2nd section 6,495219458 ms reset section 0,33671727 ms end section 2,153319466 ms Where: Check rows overflow: for (var i = 0; i < rows.length; i++) { var row = rows[i]; checkRowCellOverflows(row); } insert zws in displayname: var displayNames = $(bh).getElementsBySelector('.display-name'); for (var i = 0; i < displayNames.length; i++) { insertZeroWidthSpacesInElementText(displayNames[i], 2); } 1st section: 1629: var displayName = $(buildName).getElementsBySelector('.display-name')[0]; var buildControls = $(row).getElementsBySelector('.build-controls')[0]; var desc; var descElements = $(row).getElementsBySelector('.desc'); if (descElements.length > 0) { desc = descElements[0]; } 2nd section: 1662: // Insert zero-width spaces so as to allow text to wrap, allowing us to get the true clientWidth. insertZeroWidthSpacesInElementText(displayName, 2); .... ..... if (nameOverflowParams.isOverflowed) { // If the name is overflowed, lets remove the zero-width spaces we added above and // re-add zero-width spaces with a bigger max word sizes. removeZeroWidthSpaces(displayName); insertZeroWidthSpacesInElementText(displayName, 20); 1684: } reset section: resetCellOverflows(); end section: 1751: if (nameOverflowParams.isOverflowed || detailsOverflowParams.isOverflowed) { ....... 1866: Element.addClassName(row, "overflow-checked");

          mcrooney added a comment -

          I took a quick stab and was able to improve performance 4x, and submitted a PR: https://github.com/jenkinsci/jenkins/pull/1829. I tested some overflows with and without it and all appears well, though there could be edge cases I'm missing.

          That said, a simple solution would also seem to be, since the button just says "More builds" to not load all builds, but just 50/100 more, and keep the button there so it can be clicked again. That's what I expected it to do anyway

          mcrooney added a comment - I took a quick stab and was able to improve performance 4x, and submitted a PR: https://github.com/jenkinsci/jenkins/pull/1829 . I tested some overflows with and without it and all appears well, though there could be edge cases I'm missing. That said, a simple solution would also seem to be, since the button just says "More builds" to not load all builds, but just 50/100 more, and keep the button there so it can be clicked again. That's what I expected it to do anyway

          Tom FENNELLY added a comment -

          I updated PR 1641. It supports pagination, as well as filtering (by a fuzzy matcher, or more fine-grained filter syntax).

          Tom FENNELLY added a comment - I updated PR 1641 . It supports pagination, as well as filtering (by a fuzzy matcher, or more fine-grained filter syntax).

          Code changed in jenkins
          User: tfennelly
          Path:
          changelog.html
          cli/pom.xml
          core/pom.xml
          core/src/main/java/hudson/ExtensionListListener.java
          core/src/main/java/hudson/FilePath.java
          core/src/main/java/hudson/FileSystemProvisioner.java
          core/src/main/java/hudson/FileSystemProvisionerDescriptor.java
          core/src/main/java/hudson/Functions.java
          core/src/main/java/hudson/PluginManager.java
          core/src/main/java/hudson/PluginManagerStaplerOverride.java
          core/src/main/java/hudson/PluginWrapper.java
          core/src/main/java/hudson/cli/CloneableCLICommand.java
          core/src/main/java/hudson/diagnosis/OldDataMonitor.java
          core/src/main/java/hudson/model/AbstractProject.java
          core/src/main/java/hudson/model/ChoiceParameterDefinition.java
          core/src/main/java/hudson/model/Computer.java
          core/src/main/java/hudson/model/DownloadService.java
          core/src/main/java/hudson/model/Executor.java
          core/src/main/java/hudson/model/Items.java
          core/src/main/java/hudson/model/Job.java
          core/src/main/java/hudson/model/Result.java
          core/src/main/java/hudson/model/RunMap.java
          core/src/main/java/hudson/model/Slave.java
          core/src/main/java/hudson/model/UsageStatistics.java
          core/src/main/java/hudson/node_monitors/AbstractNodeMonitorDescriptor.java
          core/src/main/java/hudson/node_monitors/DiskSpaceMonitorDescriptor.java
          core/src/main/java/hudson/org/apache/tools/tar/TarInputStream.java
          core/src/main/java/hudson/org/apache/tools/tar/TarOutputStream.java
          core/src/main/java/hudson/os/SU.java
          core/src/main/java/hudson/scheduler/CronTab.java
          core/src/main/java/hudson/scheduler/CronTabList.java
          core/src/main/java/hudson/security/ACL.java
          core/src/main/java/hudson/security/SecurityRealm.java
          core/src/main/java/hudson/security/csrf/CrumbFilter.java
          core/src/main/java/hudson/slaves/NodeProvisioner.java
          core/src/main/java/hudson/slaves/SlaveComputer.java
          core/src/main/java/hudson/tasks/Maven.java
          core/src/main/java/hudson/tools/DownloadFromUrlInstaller.java
          core/src/main/java/hudson/triggers/SCMTrigger.java
          core/src/main/java/hudson/triggers/TimerTrigger.java
          core/src/main/java/hudson/triggers/Trigger.java
          core/src/main/java/hudson/util/ChartUtil.java
          core/src/main/java/hudson/util/CopyOnWriteList.java
          core/src/main/java/hudson/util/DoubleLaunchChecker.java
          core/src/main/java/hudson/util/MultipartFormDataParser.java
          core/src/main/java/hudson/util/PluginServletFilter.java
          core/src/main/java/hudson/util/ProcessKillingVeto.java
          core/src/main/java/hudson/util/ProcessTree.java
          core/src/main/java/hudson/util/QuotedStringTokenizer.java
          core/src/main/java/hudson/util/RobustCollectionConverter.java
          core/src/main/java/hudson/util/RobustMapConverter.java
          core/src/main/java/hudson/util/RobustReflectionConverter.java
          core/src/main/java/hudson/util/SequentialExecutionQueue.java
          core/src/main/java/hudson/util/io/TarArchiver.java
          core/src/main/java/hudson/util/jna/DotNet.java
          core/src/main/java/hudson/util/xstream/ImmutableListConverter.java
          core/src/main/java/jenkins/model/BlockedBecauseOfBuildInProgress.java
          core/src/main/java/jenkins/model/CauseOfInterruption.java
          core/src/main/java/jenkins/model/Jenkins.java
          core/src/main/java/jenkins/model/JenkinsLocationConfiguration.java
          core/src/main/java/jenkins/model/ParameterizedJobMixIn.java
          core/src/main/java/jenkins/model/RunIdMigrator.java
          core/src/main/java/jenkins/slaves/restarter/SlaveRestarter.java
          core/src/main/java/jenkins/triggers/ReverseBuildTrigger.java
          core/src/main/java/jenkins/util/xstream/CriticalXStreamException.java
          core/src/main/resources/hudson/model/AbstractBuild/changes.jelly
          core/src/main/resources/hudson/model/AbstractBuild/index_pt_BR.properties
          core/src/main/resources/hudson/model/AbstractBuild/index_pt_PT.properties
          core/src/main/resources/hudson/model/AbstractBuild/sidepanel_pt_PT.properties
          core/src/main/resources/hudson/model/AbstractProject/help-assignedLabelString.html
          core/src/main/resources/hudson/model/AbstractProject/help-assignedLabelString_zh_TW.html
          core/src/main/resources/hudson/model/AbstractProject/help-label.html
          core/src/main/resources/hudson/model/AbstractProject/help-label_zh_TW.html
          core/src/main/resources/hudson/model/Job/_api.jelly
          core/src/main/resources/hudson/model/LoadStatistics/main.properties
          core/src/main/resources/hudson/model/Messages.properties
          core/src/main/resources/hudson/model/Messages_ca.properties
          core/src/main/resources/hudson/model/Messages_da.properties
          core/src/main/resources/hudson/model/Messages_de.properties
          core/src/main/resources/hudson/model/Messages_es.properties
          core/src/main/resources/hudson/model/Messages_fi.properties
          core/src/main/resources/hudson/model/Messages_fr.properties
          core/src/main/resources/hudson/model/Messages_hu.properties
          core/src/main/resources/hudson/model/Messages_it.properties
          core/src/main/resources/hudson/model/Messages_ja.properties
          core/src/main/resources/hudson/model/Messages_nl.properties
          core/src/main/resources/hudson/model/Messages_pt_BR.properties
          core/src/main/resources/hudson/model/Messages_ru.properties
          core/src/main/resources/hudson/model/Messages_sl.properties
          core/src/main/resources/hudson/model/Messages_sv_SE.properties
          core/src/main/resources/hudson/model/Messages_tr.properties
          core/src/main/resources/hudson/model/Messages_zh_CN.properties
          core/src/main/resources/hudson/model/Messages_zh_TW.properties
          core/src/main/resources/hudson/node_monitors/DiskSpaceMonitor/column.jelly
          core/src/main/resources/hudson/node_monitors/SwapSpaceMonitor/column.jelly
          core/src/main/resources/hudson/node_monitors/TemporarySpaceMonitor/column.jelly
          core/src/main/resources/hudson/slaves/SlaveComputer/systemInfo.jelly
          core/src/main/resources/hudson/tools/InstallSourceProperty/help.html
          core/src/main/resources/jenkins/model/CauseOfInterruption/ExceptionInterruption/summary.groovy
          core/src/main/resources/jenkins/model/Messages.properties
          core/src/main/resources/jenkins/model/Messages_ca.properties
          core/src/main/resources/jenkins/model/Messages_da.properties
          core/src/main/resources/jenkins/model/Messages_de.properties
          core/src/main/resources/jenkins/model/Messages_es.properties
          core/src/main/resources/jenkins/model/Messages_fi.properties
          core/src/main/resources/jenkins/model/Messages_fr.properties
          core/src/main/resources/jenkins/model/Messages_hu.properties
          core/src/main/resources/jenkins/model/Messages_it.properties
          core/src/main/resources/jenkins/model/Messages_ja.properties
          core/src/main/resources/jenkins/model/Messages_nl.properties
          core/src/main/resources/jenkins/model/Messages_pt_BR.properties
          core/src/main/resources/jenkins/model/Messages_ru.properties
          core/src/main/resources/jenkins/model/Messages_sl.properties
          core/src/main/resources/jenkins/model/Messages_sv_SE.properties
          core/src/main/resources/jenkins/model/Messages_tr.properties
          core/src/main/resources/jenkins/model/Messages_zh_CN.properties
          core/src/main/resources/jenkins/model/Messages_zh_TW.properties
          core/src/main/resources/jenkins/security/s2m/filepath-filter.conf
          core/src/main/resources/lib/form/dropdownDescriptorSelector.jelly
          core/src/main/resources/lib/hudson/scriptConsole.properties
          core/src/main/resources/lib/hudson/scriptConsole_da.properties
          core/src/main/resources/lib/hudson/scriptConsole_de.properties
          core/src/main/resources/lib/hudson/scriptConsole_es.properties
          core/src/main/resources/lib/hudson/scriptConsole_fr.properties
          core/src/main/resources/lib/hudson/scriptConsole_ja.properties
          core/src/main/resources/lib/hudson/scriptConsole_ko.properties
          core/src/main/resources/lib/hudson/scriptConsole_nb_NO.properties
          core/src/main/resources/lib/hudson/scriptConsole_nl.properties
          core/src/main/resources/lib/hudson/scriptConsole_pl.properties
          core/src/main/resources/lib/hudson/scriptConsole_pt_BR.properties
          core/src/main/resources/lib/hudson/scriptConsole_ru.properties
          core/src/main/resources/lib/hudson/scriptConsole_sv_SE.properties
          core/src/main/resources/lib/hudson/scriptConsole_zh_TW.properties
          core/src/main/resources/lib/layout/layout.jelly
          core/src/site/markdown/index.md
          core/src/test/java/hudson/FilePathTest.java
          core/src/test/java/hudson/UtilTest.java
          core/src/test/java/hudson/model/ItemsTest.java
          core/src/test/java/hudson/model/ParametersActionTest.java
          core/src/test/java/hudson/triggers/SCMTriggerTest.java
          core/src/test/java/hudson/triggers/TimerTriggerTest.java
          core/src/test/java/hudson/util/ArgumentListBuilderTest.java
          core/src/test/java/hudson/util/MultipartFormDataParserTest.java
          core/src/test/java/jenkins/model/RunIdMigratorTest.java
          plugins/pom.xml
          pom.xml
          test/pom.xml
          test/src/main/java/com/gargoylesoftware/htmlunit/README.md
          test/src/main/java/com/gargoylesoftware/htmlunit/WebClientUtil.java
          test/src/main/java/com/gargoylesoftware/htmlunit/WebResponseListener.java
          test/src/main/java/com/gargoylesoftware/htmlunit/html/DomNodeUtil.java
          test/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlElementUtil.java
          test/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlFormUtil.java
          test/src/main/java/hudson/core/PluginManagerOverrideTest.java
          test/src/main/java/org/jvnet/hudson/test/ExtractResourceSCM.java
          test/src/main/java/org/jvnet/hudson/test/HudsonPageCreator.java
          test/src/main/java/org/jvnet/hudson/test/HudsonTestCase.java
          test/src/main/java/org/jvnet/hudson/test/JenkinsRule.java
          test/src/main/java/org/jvnet/hudson/test/junit/FailedTest.java
          test/src/main/resources/hudson/core/PluginManagerOverrideTest/BasicPluginManagerOverride/newview.jelly
          test/src/test/groovy/hudson/model/AbstractProjectTest.groovy
          test/src/test/groovy/hudson/security/TokenBasedRememberMeServices2Test.groovy
          test/src/test/groovy/jenkins/bugs/Jenkins19124Test.groovy
          test/src/test/java/hudson/ExceptionTest.java
          test/src/test/java/hudson/PluginTest.java
          test/src/test/java/hudson/bugs/JnlpAccessWithSecuredHudsonTest.java
          test/src/test/java/hudson/bugs/LoginRedirectTest.java
          test/src/test/java/hudson/cli/ComputerStateTest.java
          test/src/test/java/hudson/cli/SetBuildDisplayNameCommandTest.java
          test/src/test/java/hudson/console/ConsoleAnnotatorTest.java
          test/src/test/java/hudson/diagnosis/ReverseProxySetupMonitorTest.java
          test/src/test/java/hudson/diagnosis/TooManyJobsButNoViewTest.java
          test/src/test/java/hudson/model/AsynchPeopleTest.java
          test/src/test/java/hudson/model/DirectlyModifiableViewTest.java
          test/src/test/java/hudson/model/HelpLinkTest.java
          test/src/test/java/hudson/model/HudsonTest.java
          test/src/test/java/hudson/model/JobQueueTest.java
          test/src/test/java/hudson/model/JobTest.java
          test/src/test/java/hudson/model/ManagementLinkTest.java
          test/src/test/java/hudson/model/MyViewsPropertyTest.java
          test/src/test/java/hudson/model/ParametersTest.java
          test/src/test/java/hudson/model/ProjectTest.java
          test/src/test/java/hudson/model/QueueTest.java
          test/src/test/java/hudson/model/SimpleJobTest.java
          test/src/test/java/hudson/model/UserTest.java
          test/src/test/java/hudson/model/ViewPropertyTest.java
          test/src/test/java/hudson/model/ViewTest.java
          test/src/test/java/hudson/model/queue/WideExecutionTest.java
          test/src/test/java/hudson/search/SearchTest.java
          test/src/test/java/hudson/security/LoginTest.java
          test/src/test/java/hudson/security/pages/SignupPage.java
          test/src/test/java/hudson/slaves/JNLPLauncherTest.java
          test/src/test/java/hudson/slaves/NodePropertyTest.java
          test/src/test/java/hudson/tools/JDKInstallerTest.java
          test/src/test/java/hudson/util/AlternativeUiTextProviderTest.java
          test/src/test/java/hudson/util/FormFieldValidatorTest.java
          test/src/test/java/hudson/util/ProcessTreeKillerTest.java
          test/src/test/java/hudson/util/RobustReflectionConverterTest.java
          test/src/test/java/jenkins/model/JenkinsTest.java
          test/src/test/java/jenkins/security/ApiTokenPropertyTest.java
          test/src/test/java/jenkins/security/BasicHeaderProcessorTest.java
          test/src/test/java/jenkins/security/FrameOptionsPageDecoratorTest.java
          test/src/test/java/jenkins/security/RekeySecretAdminMonitorTest.java
          test/src/test/java/jenkins/security/Security177Test.java
          test/src/test/java/jenkins/widgets/BuildListTableTest.java
          test/src/test/java/lib/form/AdvancedButtonTest.java
          test/src/test/java/lib/form/ExpandableTextboxTest.java
          test/src/test/java/lib/form/RepeatableTest.java
          test/src/test/java/lib/form/RowSetTest.java
          test/src/test/java/lib/form/RowVisibilityGroupTest.java
          test/src/test/java/lib/form/ValidateButtonTest.java
          test/src/test/java/lib/hudson/ListScmBrowsersTest.java
          test/src/test/java/lib/layout/IconTest.java
          test/src/test/java/lib/layout/LayoutTest.java
          test/src/test/java/lib/layout/RenderOnDemandTest.java
          test/src/test/java/lib/layout/TaskTest.java
          test/src/test/java/org/jvnet/hudson/main/JenkinsRuleTimeoutTest.java
          test/src/test/java/org/jvnet/hudson/main/UseRecipesWithJenkinsRuleTest.java
          test/src/test/resources/lib/form/RowSetTest/Subject/test1.jelly
          translation-tool.pl
          war/pom.xml
          war/src/main/webapp/css/style.css
          war/src/main/webapp/help/project-config/custom-workspace.html
          war/src/main/webapp/scripts/hudson-behavior.js
          war/src/main/webapp/scripts/prototype.js
          http://jenkins-ci.org/commit/jenkins/a305e3dc93ae087cc367fcda3fde87695322597f
          Log:
          Merge branch 'master' into JENKINS-26445-pagination-search

          • master: (256 commits)
            Noting #1817
            Noting #1825
            updated changelog for release
            [maven-release-plugin] prepare for next development iteration
            [maven-release-plugin] prepare release jenkins-1.629
            JENKINS-30139 Oleg wants to keep the data accessible so we have to go for immutable
            JENKINS-30139 Forgot to change this one
            JENKINS-30139 Add @Restricted to prevent external use of internal data
            JENKINS-30139 Switch from a big fat lock to a concurrent collection
            JENKINS-30374 Update obsolete help message
            updated changelog for release
            [maven-release-plugin] prepare for next development iteration
            [maven-release-plugin] prepare release jenkins-1.628
            noting merge of PR#1816 - use slf4j interceptors
            Manage commons-logging and log4j as provided, include slf4j adapters for tests.
            Exclude commons-logging and log4j in dangerous scopes compile and runtime in plugins as well.
            Only exclude commons-logging and log4j in dangerous scopes compile and runtime.
            Reintroduce enforcer rules as suggested by @jtnord.
            Document allBuilds for Job remote access API
            Include slf4j-jdk14 during tests.
            ...

          Conflicts:
          war/src/main/webapp/scripts/hudson-behavior.js

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: tfennelly Path: changelog.html cli/pom.xml core/pom.xml core/src/main/java/hudson/ExtensionListListener.java core/src/main/java/hudson/FilePath.java core/src/main/java/hudson/FileSystemProvisioner.java core/src/main/java/hudson/FileSystemProvisionerDescriptor.java core/src/main/java/hudson/Functions.java core/src/main/java/hudson/PluginManager.java core/src/main/java/hudson/PluginManagerStaplerOverride.java core/src/main/java/hudson/PluginWrapper.java core/src/main/java/hudson/cli/CloneableCLICommand.java core/src/main/java/hudson/diagnosis/OldDataMonitor.java core/src/main/java/hudson/model/AbstractProject.java core/src/main/java/hudson/model/ChoiceParameterDefinition.java core/src/main/java/hudson/model/Computer.java core/src/main/java/hudson/model/DownloadService.java core/src/main/java/hudson/model/Executor.java core/src/main/java/hudson/model/Items.java core/src/main/java/hudson/model/Job.java core/src/main/java/hudson/model/Result.java core/src/main/java/hudson/model/RunMap.java core/src/main/java/hudson/model/Slave.java core/src/main/java/hudson/model/UsageStatistics.java core/src/main/java/hudson/node_monitors/AbstractNodeMonitorDescriptor.java core/src/main/java/hudson/node_monitors/DiskSpaceMonitorDescriptor.java core/src/main/java/hudson/org/apache/tools/tar/TarInputStream.java core/src/main/java/hudson/org/apache/tools/tar/TarOutputStream.java core/src/main/java/hudson/os/SU.java core/src/main/java/hudson/scheduler/CronTab.java core/src/main/java/hudson/scheduler/CronTabList.java core/src/main/java/hudson/security/ACL.java core/src/main/java/hudson/security/SecurityRealm.java core/src/main/java/hudson/security/csrf/CrumbFilter.java core/src/main/java/hudson/slaves/NodeProvisioner.java core/src/main/java/hudson/slaves/SlaveComputer.java core/src/main/java/hudson/tasks/Maven.java core/src/main/java/hudson/tools/DownloadFromUrlInstaller.java core/src/main/java/hudson/triggers/SCMTrigger.java core/src/main/java/hudson/triggers/TimerTrigger.java core/src/main/java/hudson/triggers/Trigger.java core/src/main/java/hudson/util/ChartUtil.java core/src/main/java/hudson/util/CopyOnWriteList.java core/src/main/java/hudson/util/DoubleLaunchChecker.java core/src/main/java/hudson/util/MultipartFormDataParser.java core/src/main/java/hudson/util/PluginServletFilter.java core/src/main/java/hudson/util/ProcessKillingVeto.java core/src/main/java/hudson/util/ProcessTree.java core/src/main/java/hudson/util/QuotedStringTokenizer.java core/src/main/java/hudson/util/RobustCollectionConverter.java core/src/main/java/hudson/util/RobustMapConverter.java core/src/main/java/hudson/util/RobustReflectionConverter.java core/src/main/java/hudson/util/SequentialExecutionQueue.java core/src/main/java/hudson/util/io/TarArchiver.java core/src/main/java/hudson/util/jna/DotNet.java core/src/main/java/hudson/util/xstream/ImmutableListConverter.java core/src/main/java/jenkins/model/BlockedBecauseOfBuildInProgress.java core/src/main/java/jenkins/model/CauseOfInterruption.java core/src/main/java/jenkins/model/Jenkins.java core/src/main/java/jenkins/model/JenkinsLocationConfiguration.java core/src/main/java/jenkins/model/ParameterizedJobMixIn.java core/src/main/java/jenkins/model/RunIdMigrator.java core/src/main/java/jenkins/slaves/restarter/SlaveRestarter.java core/src/main/java/jenkins/triggers/ReverseBuildTrigger.java core/src/main/java/jenkins/util/xstream/CriticalXStreamException.java core/src/main/resources/hudson/model/AbstractBuild/changes.jelly core/src/main/resources/hudson/model/AbstractBuild/index_pt_BR.properties core/src/main/resources/hudson/model/AbstractBuild/index_pt_PT.properties core/src/main/resources/hudson/model/AbstractBuild/sidepanel_pt_PT.properties core/src/main/resources/hudson/model/AbstractProject/help-assignedLabelString.html core/src/main/resources/hudson/model/AbstractProject/help-assignedLabelString_zh_TW.html core/src/main/resources/hudson/model/AbstractProject/help-label.html core/src/main/resources/hudson/model/AbstractProject/help-label_zh_TW.html core/src/main/resources/hudson/model/Job/_api.jelly core/src/main/resources/hudson/model/LoadStatistics/main.properties core/src/main/resources/hudson/model/Messages.properties core/src/main/resources/hudson/model/Messages_ca.properties core/src/main/resources/hudson/model/Messages_da.properties core/src/main/resources/hudson/model/Messages_de.properties core/src/main/resources/hudson/model/Messages_es.properties core/src/main/resources/hudson/model/Messages_fi.properties core/src/main/resources/hudson/model/Messages_fr.properties core/src/main/resources/hudson/model/Messages_hu.properties core/src/main/resources/hudson/model/Messages_it.properties core/src/main/resources/hudson/model/Messages_ja.properties core/src/main/resources/hudson/model/Messages_nl.properties core/src/main/resources/hudson/model/Messages_pt_BR.properties core/src/main/resources/hudson/model/Messages_ru.properties core/src/main/resources/hudson/model/Messages_sl.properties core/src/main/resources/hudson/model/Messages_sv_SE.properties core/src/main/resources/hudson/model/Messages_tr.properties core/src/main/resources/hudson/model/Messages_zh_CN.properties core/src/main/resources/hudson/model/Messages_zh_TW.properties core/src/main/resources/hudson/node_monitors/DiskSpaceMonitor/column.jelly core/src/main/resources/hudson/node_monitors/SwapSpaceMonitor/column.jelly core/src/main/resources/hudson/node_monitors/TemporarySpaceMonitor/column.jelly core/src/main/resources/hudson/slaves/SlaveComputer/systemInfo.jelly core/src/main/resources/hudson/tools/InstallSourceProperty/help.html core/src/main/resources/jenkins/model/CauseOfInterruption/ExceptionInterruption/summary.groovy core/src/main/resources/jenkins/model/Messages.properties core/src/main/resources/jenkins/model/Messages_ca.properties core/src/main/resources/jenkins/model/Messages_da.properties core/src/main/resources/jenkins/model/Messages_de.properties core/src/main/resources/jenkins/model/Messages_es.properties core/src/main/resources/jenkins/model/Messages_fi.properties core/src/main/resources/jenkins/model/Messages_fr.properties core/src/main/resources/jenkins/model/Messages_hu.properties core/src/main/resources/jenkins/model/Messages_it.properties core/src/main/resources/jenkins/model/Messages_ja.properties core/src/main/resources/jenkins/model/Messages_nl.properties core/src/main/resources/jenkins/model/Messages_pt_BR.properties core/src/main/resources/jenkins/model/Messages_ru.properties core/src/main/resources/jenkins/model/Messages_sl.properties core/src/main/resources/jenkins/model/Messages_sv_SE.properties core/src/main/resources/jenkins/model/Messages_tr.properties core/src/main/resources/jenkins/model/Messages_zh_CN.properties core/src/main/resources/jenkins/model/Messages_zh_TW.properties core/src/main/resources/jenkins/security/s2m/filepath-filter.conf core/src/main/resources/lib/form/dropdownDescriptorSelector.jelly core/src/main/resources/lib/hudson/scriptConsole.properties core/src/main/resources/lib/hudson/scriptConsole_da.properties core/src/main/resources/lib/hudson/scriptConsole_de.properties core/src/main/resources/lib/hudson/scriptConsole_es.properties core/src/main/resources/lib/hudson/scriptConsole_fr.properties core/src/main/resources/lib/hudson/scriptConsole_ja.properties core/src/main/resources/lib/hudson/scriptConsole_ko.properties core/src/main/resources/lib/hudson/scriptConsole_nb_NO.properties core/src/main/resources/lib/hudson/scriptConsole_nl.properties core/src/main/resources/lib/hudson/scriptConsole_pl.properties core/src/main/resources/lib/hudson/scriptConsole_pt_BR.properties core/src/main/resources/lib/hudson/scriptConsole_ru.properties core/src/main/resources/lib/hudson/scriptConsole_sv_SE.properties core/src/main/resources/lib/hudson/scriptConsole_zh_TW.properties core/src/main/resources/lib/layout/layout.jelly core/src/site/markdown/index.md core/src/test/java/hudson/FilePathTest.java core/src/test/java/hudson/UtilTest.java core/src/test/java/hudson/model/ItemsTest.java core/src/test/java/hudson/model/ParametersActionTest.java core/src/test/java/hudson/triggers/SCMTriggerTest.java core/src/test/java/hudson/triggers/TimerTriggerTest.java core/src/test/java/hudson/util/ArgumentListBuilderTest.java core/src/test/java/hudson/util/MultipartFormDataParserTest.java core/src/test/java/jenkins/model/RunIdMigratorTest.java plugins/pom.xml pom.xml test/pom.xml test/src/main/java/com/gargoylesoftware/htmlunit/README.md test/src/main/java/com/gargoylesoftware/htmlunit/WebClientUtil.java test/src/main/java/com/gargoylesoftware/htmlunit/WebResponseListener.java test/src/main/java/com/gargoylesoftware/htmlunit/html/DomNodeUtil.java test/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlElementUtil.java test/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlFormUtil.java test/src/main/java/hudson/core/PluginManagerOverrideTest.java test/src/main/java/org/jvnet/hudson/test/ExtractResourceSCM.java test/src/main/java/org/jvnet/hudson/test/HudsonPageCreator.java test/src/main/java/org/jvnet/hudson/test/HudsonTestCase.java test/src/main/java/org/jvnet/hudson/test/JenkinsRule.java test/src/main/java/org/jvnet/hudson/test/junit/FailedTest.java test/src/main/resources/hudson/core/PluginManagerOverrideTest/BasicPluginManagerOverride/newview.jelly test/src/test/groovy/hudson/model/AbstractProjectTest.groovy test/src/test/groovy/hudson/security/TokenBasedRememberMeServices2Test.groovy test/src/test/groovy/jenkins/bugs/Jenkins19124Test.groovy test/src/test/java/hudson/ExceptionTest.java test/src/test/java/hudson/PluginTest.java test/src/test/java/hudson/bugs/JnlpAccessWithSecuredHudsonTest.java test/src/test/java/hudson/bugs/LoginRedirectTest.java test/src/test/java/hudson/cli/ComputerStateTest.java test/src/test/java/hudson/cli/SetBuildDisplayNameCommandTest.java test/src/test/java/hudson/console/ConsoleAnnotatorTest.java test/src/test/java/hudson/diagnosis/ReverseProxySetupMonitorTest.java test/src/test/java/hudson/diagnosis/TooManyJobsButNoViewTest.java test/src/test/java/hudson/model/AsynchPeopleTest.java test/src/test/java/hudson/model/DirectlyModifiableViewTest.java test/src/test/java/hudson/model/HelpLinkTest.java test/src/test/java/hudson/model/HudsonTest.java test/src/test/java/hudson/model/JobQueueTest.java test/src/test/java/hudson/model/JobTest.java test/src/test/java/hudson/model/ManagementLinkTest.java test/src/test/java/hudson/model/MyViewsPropertyTest.java test/src/test/java/hudson/model/ParametersTest.java test/src/test/java/hudson/model/ProjectTest.java test/src/test/java/hudson/model/QueueTest.java test/src/test/java/hudson/model/SimpleJobTest.java test/src/test/java/hudson/model/UserTest.java test/src/test/java/hudson/model/ViewPropertyTest.java test/src/test/java/hudson/model/ViewTest.java test/src/test/java/hudson/model/queue/WideExecutionTest.java test/src/test/java/hudson/search/SearchTest.java test/src/test/java/hudson/security/LoginTest.java test/src/test/java/hudson/security/pages/SignupPage.java test/src/test/java/hudson/slaves/JNLPLauncherTest.java test/src/test/java/hudson/slaves/NodePropertyTest.java test/src/test/java/hudson/tools/JDKInstallerTest.java test/src/test/java/hudson/util/AlternativeUiTextProviderTest.java test/src/test/java/hudson/util/FormFieldValidatorTest.java test/src/test/java/hudson/util/ProcessTreeKillerTest.java test/src/test/java/hudson/util/RobustReflectionConverterTest.java test/src/test/java/jenkins/model/JenkinsTest.java test/src/test/java/jenkins/security/ApiTokenPropertyTest.java test/src/test/java/jenkins/security/BasicHeaderProcessorTest.java test/src/test/java/jenkins/security/FrameOptionsPageDecoratorTest.java test/src/test/java/jenkins/security/RekeySecretAdminMonitorTest.java test/src/test/java/jenkins/security/Security177Test.java test/src/test/java/jenkins/widgets/BuildListTableTest.java test/src/test/java/lib/form/AdvancedButtonTest.java test/src/test/java/lib/form/ExpandableTextboxTest.java test/src/test/java/lib/form/RepeatableTest.java test/src/test/java/lib/form/RowSetTest.java test/src/test/java/lib/form/RowVisibilityGroupTest.java test/src/test/java/lib/form/ValidateButtonTest.java test/src/test/java/lib/hudson/ListScmBrowsersTest.java test/src/test/java/lib/layout/IconTest.java test/src/test/java/lib/layout/LayoutTest.java test/src/test/java/lib/layout/RenderOnDemandTest.java test/src/test/java/lib/layout/TaskTest.java test/src/test/java/org/jvnet/hudson/main/JenkinsRuleTimeoutTest.java test/src/test/java/org/jvnet/hudson/main/UseRecipesWithJenkinsRuleTest.java test/src/test/resources/lib/form/RowSetTest/Subject/test1.jelly translation-tool.pl war/pom.xml war/src/main/webapp/css/style.css war/src/main/webapp/help/project-config/custom-workspace.html war/src/main/webapp/scripts/hudson-behavior.js war/src/main/webapp/scripts/prototype.js http://jenkins-ci.org/commit/jenkins/a305e3dc93ae087cc367fcda3fde87695322597f Log: Merge branch 'master' into JENKINS-26445 -pagination-search master: (256 commits) Noting #1817 Noting #1825 updated changelog for release [maven-release-plugin] prepare for next development iteration [maven-release-plugin] prepare release jenkins-1.629 JENKINS-30139 Oleg wants to keep the data accessible so we have to go for immutable JENKINS-30139 Forgot to change this one JENKINS-30139 Add @Restricted to prevent external use of internal data JENKINS-30139 Switch from a big fat lock to a concurrent collection JENKINS-30374 Update obsolete help message updated changelog for release [maven-release-plugin] prepare for next development iteration [maven-release-plugin] prepare release jenkins-1.628 noting merge of PR#1816 - use slf4j interceptors Manage commons-logging and log4j as provided, include slf4j adapters for tests. Exclude commons-logging and log4j in dangerous scopes compile and runtime in plugins as well. Only exclude commons-logging and log4j in dangerous scopes compile and runtime. Reintroduce enforcer rules as suggested by @jtnord. Document allBuilds for Job remote access API Include slf4j-jdk14 during tests. ... Conflicts: war/src/main/webapp/scripts/hudson-behavior.js

          Code changed in jenkins
          User: tfennelly
          Path:
          .gitignore
          changelog.html
          cli/pom.xml
          core/pom.xml
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_cs.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_da.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_de.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_es.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_et.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_fi.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_fr.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_hu.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_id.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_it.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_ja.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_ko.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_lt.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_lv.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_nb_NO.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_nl.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_pl.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_pt_BR.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_pt_PT.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_ru.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_sk.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_sl.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_sv_SE.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_uk.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_zh_CN.properties
          core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_zh_TW.properties
          core/src/main/java/hudson/Functions.java
          core/src/main/java/hudson/PluginManager.java
          core/src/main/java/hudson/PluginWrapper.java
          core/src/main/java/hudson/Util.java
          core/src/main/java/hudson/cli/ReloadJobCommand.java
          core/src/main/java/hudson/console/ConsoleLogFilter.java
          core/src/main/java/hudson/model/AbstractItem.java
          core/src/main/java/hudson/model/AbstractProject.java
          core/src/main/java/hudson/model/Label.java
          core/src/main/java/hudson/model/Queue.java
          core/src/main/java/hudson/model/Run.java
          core/src/main/java/hudson/model/TopLevelItemDescriptor.java
          core/src/main/java/hudson/slaves/SlaveComputer.java
          core/src/main/java/hudson/tasks/BuildWrappers.java
          core/src/main/java/jenkins/model/Jenkins.java
          core/src/main/java/jenkins/triggers/ReverseBuildTrigger.java
          core/src/main/resources/hudson/PluginManager/_table.js
          core/src/main/resources/hudson/PluginManager/installed.jelly
          core/src/main/resources/hudson/PluginManager/installed.properties
          core/src/main/resources/hudson/cli/Messages.properties
          core/src/main/resources/hudson/cli/Messages_pt_BR.properties
          core/src/main/resources/hudson/model/Messages.properties
          core/src/main/resources/hudson/model/Messages_pt_BR.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_cs.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_da.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_de.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_es.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_et.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_fi.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_fr.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_hu.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_id.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_it.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_ja.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_ko.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_lt.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_lv.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_nb_NO.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_nl.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_pl.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_pt_BR.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_pt_PT.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_ru.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_sk.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_sl.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_sv_SE.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_uk.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_zh_CN.properties
          core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_zh_TW.properties
          core/src/main/resources/hudson/widgets/HistoryWidget/index.jelly
          core/src/main/resources/lib/form/confirm.js
          core/src/main/resources/lib/form/select/select.js
          core/src/main/resources/lib/layout/layout.jelly
          core/src/main/resources/lib/layout/task.jelly
          core/src/test/java/hudson/FilePathTest.java
          core/src/test/java/hudson/LauncherTest.java
          core/src/test/java/hudson/util/IsOverriddenTest.java
          core/src/test/java/hudson/util/ProcessTreeTest.java
          plugins/pom.xml
          pom.xml
          test/pom.xml
          test/src/main/java/org/jvnet/hudson/test/JenkinsRule.java
          test/src/test/groovy/hudson/model/AbstractProjectTest.groovy
          test/src/test/groovy/jenkins/model/PeepholePermalinkTest.groovy
          test/src/test/java/hudson/PluginManagerInstalledGUITest.java
          test/src/test/java/hudson/cli/DeleteJobCommandTest.java
          test/src/test/java/hudson/cli/ReloadJobCommandTest.java
          test/src/test/java/hudson/console/ConsoleLogFilterTest.java
          test/src/test/java/hudson/model/DirectoryBrowserSupportTest.java
          test/src/test/java/hudson/model/NodeTest.java
          test/src/test/java/hudson/model/QueueTest.java
          test/src/test/java/hudson/slaves/CommandLauncherTest.java
          test/src/test/java/hudson/slaves/DummyCloudImpl.java
          test/src/test/java/hudson/slaves/JNLPLauncherTest.java
          test/src/test/java/hudson/tasks/EnvVarsInConfigTasksTest.java
          test/src/test/java/hudson/tasks/ShellTest.java
          test/src/test/java/hudson/tools/JDKInstallerTest.java
          test/src/test/java/hudson/util/ProcessTreeKillerTest.java
          test/src/test/java/jenkins/triggers/ReverseBuildTriggerTest.java
          war/pom.xml
          war/src/main/webapp/css/style.css
          war/src/main/webapp/images/mask-icon.svg
          http://jenkins-ci.org/commit/jenkins/2ec3ffcd534ede3039fa30c886ab8bcfb041b167
          Log:
          Merge branch 'master' into JENKINS-26445-pagination-search

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: tfennelly Path: .gitignore changelog.html cli/pom.xml core/pom.xml core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_cs.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_da.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_de.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_es.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_et.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_fi.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_fr.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_hu.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_id.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_it.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_ja.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_ko.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_lt.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_lv.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_nb_NO.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_nl.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_pl.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_pt_BR.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_pt_PT.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_ru.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_sk.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_sl.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_sv_SE.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_uk.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_zh_CN.properties core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_zh_TW.properties core/src/main/java/hudson/Functions.java core/src/main/java/hudson/PluginManager.java core/src/main/java/hudson/PluginWrapper.java core/src/main/java/hudson/Util.java core/src/main/java/hudson/cli/ReloadJobCommand.java core/src/main/java/hudson/console/ConsoleLogFilter.java core/src/main/java/hudson/model/AbstractItem.java core/src/main/java/hudson/model/AbstractProject.java core/src/main/java/hudson/model/Label.java core/src/main/java/hudson/model/Queue.java core/src/main/java/hudson/model/Run.java core/src/main/java/hudson/model/TopLevelItemDescriptor.java core/src/main/java/hudson/slaves/SlaveComputer.java core/src/main/java/hudson/tasks/BuildWrappers.java core/src/main/java/jenkins/model/Jenkins.java core/src/main/java/jenkins/triggers/ReverseBuildTrigger.java core/src/main/resources/hudson/PluginManager/_table.js core/src/main/resources/hudson/PluginManager/installed.jelly core/src/main/resources/hudson/PluginManager/installed.properties core/src/main/resources/hudson/cli/Messages.properties core/src/main/resources/hudson/cli/Messages_pt_BR.properties core/src/main/resources/hudson/model/Messages.properties core/src/main/resources/hudson/model/Messages_pt_BR.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_cs.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_da.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_de.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_es.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_et.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_fi.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_fr.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_hu.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_id.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_it.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_ja.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_ko.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_lt.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_lv.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_nb_NO.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_nl.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_pl.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_pt_BR.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_pt_PT.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_ru.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_sk.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_sl.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_sv_SE.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_uk.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_zh_CN.properties core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_zh_TW.properties core/src/main/resources/hudson/widgets/HistoryWidget/index.jelly core/src/main/resources/lib/form/confirm.js core/src/main/resources/lib/form/select/select.js core/src/main/resources/lib/layout/layout.jelly core/src/main/resources/lib/layout/task.jelly core/src/test/java/hudson/FilePathTest.java core/src/test/java/hudson/LauncherTest.java core/src/test/java/hudson/util/IsOverriddenTest.java core/src/test/java/hudson/util/ProcessTreeTest.java plugins/pom.xml pom.xml test/pom.xml test/src/main/java/org/jvnet/hudson/test/JenkinsRule.java test/src/test/groovy/hudson/model/AbstractProjectTest.groovy test/src/test/groovy/jenkins/model/PeepholePermalinkTest.groovy test/src/test/java/hudson/PluginManagerInstalledGUITest.java test/src/test/java/hudson/cli/DeleteJobCommandTest.java test/src/test/java/hudson/cli/ReloadJobCommandTest.java test/src/test/java/hudson/console/ConsoleLogFilterTest.java test/src/test/java/hudson/model/DirectoryBrowserSupportTest.java test/src/test/java/hudson/model/NodeTest.java test/src/test/java/hudson/model/QueueTest.java test/src/test/java/hudson/slaves/CommandLauncherTest.java test/src/test/java/hudson/slaves/DummyCloudImpl.java test/src/test/java/hudson/slaves/JNLPLauncherTest.java test/src/test/java/hudson/tasks/EnvVarsInConfigTasksTest.java test/src/test/java/hudson/tasks/ShellTest.java test/src/test/java/hudson/tools/JDKInstallerTest.java test/src/test/java/hudson/util/ProcessTreeKillerTest.java test/src/test/java/jenkins/triggers/ReverseBuildTriggerTest.java war/pom.xml war/src/main/webapp/css/style.css war/src/main/webapp/images/mask-icon.svg http://jenkins-ci.org/commit/jenkins/2ec3ffcd534ede3039fa30c886ab8bcfb041b167 Log: Merge branch 'master' into JENKINS-26445 -pagination-search

          Code changed in jenkins
          User: Daniel Beck
          Path:
          core/src/main/java/hudson/widgets/BuildHistoryWidget.java
          core/src/main/java/hudson/widgets/HistoryWidget.java
          core/src/main/java/jenkins/widgets/HistoryPageEntry.java
          core/src/main/java/jenkins/widgets/HistoryPageFilter.java
          core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries.jelly
          core/src/main/resources/hudson/widgets/HistoryWidget/ajaxBuildHistory.jelly
          core/src/main/resources/hudson/widgets/HistoryWidget/entries.jelly
          core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly
          core/src/main/resources/hudson/widgets/HistoryWidget/index.jelly
          core/src/main/resources/jenkins/widgets/HistoryPageFilter/ajaxBuildHistory.jelly
          core/src/main/resources/jenkins/widgets/HistoryPageFilter/entries.jelly
          core/src/main/resources/jenkins/widgets/HistoryPageFilter/queue-items.jelly
          core/src/main/resources/lib/layout/pane.jelly
          core/src/test/java/hudson/model/MockItem.java
          core/src/test/java/jenkins/widgets/HistoryPageFilterTest.java
          test/src/test/java/hudson/tasks/BuildTriggerTest.java
          war/src/main/webapp/css/style.css
          war/src/main/webapp/images/16x16/bullseye.png
          war/src/main/webapp/images/16x16/find.png
          war/src/main/webapp/images/16x16/go_down.png
          war/src/main/webapp/images/16x16/go_up.png
          war/src/main/webapp/scripts/hudson-behavior.js
          http://jenkins-ci.org/commit/jenkins/5c66fcc6b0318ba151ab3a7fcfbd8ec68b5fea42
          Log:
          Merge pull request #1641 from tfennelly/JENKINS-26445-pagination-search

          [FIX JENKINS-26445] Build history pagination and search

          Compare: https://github.com/jenkinsci/jenkins/compare/ffc4cac1bc8f...5c66fcc6b031

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Daniel Beck Path: core/src/main/java/hudson/widgets/BuildHistoryWidget.java core/src/main/java/hudson/widgets/HistoryWidget.java core/src/main/java/jenkins/widgets/HistoryPageEntry.java core/src/main/java/jenkins/widgets/HistoryPageFilter.java core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries.jelly core/src/main/resources/hudson/widgets/HistoryWidget/ajaxBuildHistory.jelly core/src/main/resources/hudson/widgets/HistoryWidget/entries.jelly core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly core/src/main/resources/hudson/widgets/HistoryWidget/index.jelly core/src/main/resources/jenkins/widgets/HistoryPageFilter/ajaxBuildHistory.jelly core/src/main/resources/jenkins/widgets/HistoryPageFilter/entries.jelly core/src/main/resources/jenkins/widgets/HistoryPageFilter/queue-items.jelly core/src/main/resources/lib/layout/pane.jelly core/src/test/java/hudson/model/MockItem.java core/src/test/java/jenkins/widgets/HistoryPageFilterTest.java test/src/test/java/hudson/tasks/BuildTriggerTest.java war/src/main/webapp/css/style.css war/src/main/webapp/images/16x16/bullseye.png war/src/main/webapp/images/16x16/find.png war/src/main/webapp/images/16x16/go_down.png war/src/main/webapp/images/16x16/go_up.png war/src/main/webapp/scripts/hudson-behavior.js http://jenkins-ci.org/commit/jenkins/5c66fcc6b0318ba151ab3a7fcfbd8ec68b5fea42 Log: Merge pull request #1641 from tfennelly/ JENKINS-26445 -pagination-search [FIX JENKINS-26445] Build history pagination and search Compare: https://github.com/jenkinsci/jenkins/compare/ffc4cac1bc8f...5c66fcc6b031

          Code changed in jenkins
          User: Tom Fennelly
          Path:
          core/src/main/java/hudson/widgets/BuildHistoryWidget.java
          core/src/main/java/hudson/widgets/HistoryWidget.java
          core/src/main/java/jenkins/widgets/HistoryPageEntry.java
          core/src/main/java/jenkins/widgets/HistoryPageFilter.java
          core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries.jelly
          core/src/main/resources/hudson/widgets/HistoryWidget/ajaxBuildHistory.jelly
          core/src/main/resources/hudson/widgets/HistoryWidget/entries.jelly
          core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly
          core/src/main/resources/hudson/widgets/HistoryWidget/index.jelly
          core/src/main/resources/jenkins/widgets/HistoryPageFilter/ajaxBuildHistory.jelly
          core/src/main/resources/jenkins/widgets/HistoryPageFilter/entries.jelly
          core/src/main/resources/jenkins/widgets/HistoryPageFilter/queue-items.jelly
          core/src/main/resources/lib/layout/pane.jelly
          core/src/test/java/hudson/model/MockItem.java
          core/src/test/java/jenkins/widgets/HistoryPageFilterTest.java
          test/src/test/java/hudson/tasks/BuildTriggerTest.java
          war/src/main/webapp/css/style.css
          war/src/main/webapp/images/16x16/bullseye.png
          war/src/main/webapp/images/16x16/find.png
          war/src/main/webapp/images/16x16/go_down.png
          war/src/main/webapp/images/16x16/go_up.png
          war/src/main/webapp/scripts/hudson-behavior.js
          http://jenkins-ci.org/commit/jenkins/1c2221b25951495aa3ca3f7962e863577a1dc5a4
          Log:
          Revert "JENKINS-26445 Build history pagination and search"

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Tom Fennelly Path: core/src/main/java/hudson/widgets/BuildHistoryWidget.java core/src/main/java/hudson/widgets/HistoryWidget.java core/src/main/java/jenkins/widgets/HistoryPageEntry.java core/src/main/java/jenkins/widgets/HistoryPageFilter.java core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries.jelly core/src/main/resources/hudson/widgets/HistoryWidget/ajaxBuildHistory.jelly core/src/main/resources/hudson/widgets/HistoryWidget/entries.jelly core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly core/src/main/resources/hudson/widgets/HistoryWidget/index.jelly core/src/main/resources/jenkins/widgets/HistoryPageFilter/ajaxBuildHistory.jelly core/src/main/resources/jenkins/widgets/HistoryPageFilter/entries.jelly core/src/main/resources/jenkins/widgets/HistoryPageFilter/queue-items.jelly core/src/main/resources/lib/layout/pane.jelly core/src/test/java/hudson/model/MockItem.java core/src/test/java/jenkins/widgets/HistoryPageFilterTest.java test/src/test/java/hudson/tasks/BuildTriggerTest.java war/src/main/webapp/css/style.css war/src/main/webapp/images/16x16/bullseye.png war/src/main/webapp/images/16x16/find.png war/src/main/webapp/images/16x16/go_down.png war/src/main/webapp/images/16x16/go_up.png war/src/main/webapp/scripts/hudson-behavior.js http://jenkins-ci.org/commit/jenkins/1c2221b25951495aa3ca3f7962e863577a1dc5a4 Log: Revert " JENKINS-26445 Build history pagination and search"

          Tom FENNELLY added a comment -

          There's an issue with this because of the queue state persistence issue (JENKINS-30909).

          Tom FENNELLY added a comment - There's an issue with this because of the queue state persistence issue ( JENKINS-30909 ).

          Arpit Gupta added a comment -

          tfennelly thanks for the fix. I notice this jira is referred 1.633 changelog. Does that have the fix for the issue JENKINS-30909?

          Arpit Gupta added a comment - tfennelly thanks for the fix. I notice this jira is referred 1.633 changelog. Does that have the fix for the issue JENKINS-30909 ?

          Daniel Beck added a comment -

          arpitgupta 1.633 resolved this issue, but JENKINS-30909 resulted in a mess. 1.634 will determine order differently, see JENKINS-30899 and the 'upcoming changes' in 1.634. So JENKINS-30909 is still unresolved, but we're back to not using the data from it.

          Daniel Beck added a comment - arpitgupta 1.633 resolved this issue, but JENKINS-30909 resulted in a mess. 1.634 will determine order differently, see JENKINS-30899 and the 'upcoming changes' in 1.634. So JENKINS-30909 is still unresolved, but we're back to not using the data from it.

          Arpit Gupta added a comment -

          danielbeck thanks for the info. I will wait for 1.634 and try it out.

          Arpit Gupta added a comment - danielbeck thanks for the info. I will wait for 1.634 and try it out.

            tfennelly Tom FENNELLY
            arpitgupta Arpit Gupta
            Votes:
            15 Vote for this issue
            Watchers:
            23 Start watching this issue

              Created:
              Updated:
              Resolved: