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

New Oracle website prevents the JDKInstaller to download binaries from archives (Unable to find a form in the response)

      Oracle recently deployed a new version of its web site and it breaks the JDKInstaller.

      On MacOS :

      Installing JDK jdk-8u92-oth-JPR
      Downloading JDK from http://download.oracle.com/otn/java/jdk/8u92-b14/jdk-8u92-macosx-x64.dmg
      ERROR: Build step failed with exception
      java.lang.IllegalStateException: Unable to find a form in the response:
      
      
      
      
      
      
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
      
      
      
      
      
      
      
      
      
      
      <html  lang="en">
      
      <head>
        
      <title>Sign On</title>
      <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
      <meta name="viewport" content="width=320; initial-scale=1.0; maximum-scale=1.0; user-scalable=1;" />
      
      
      
      
      
      
      
      
      
      <link rel="stylesheet" type="text/css" href="/oaam_server/css/oaam_uio.css">
      
      
      
        <link rel="stylesheet" type="text/css" href="/oaam_server/client/oam/css/e_oaam_style.css">
      
      
      
      
      
      <script type="text/javascript" charset="UTF-8" language="javascript" src="/oaam_server/js/oaam_uio.js"></script>
      
      
      
      <style id="acj">body{ display:none !important;}</style> 
      <script type="text/javascript" charset="UTF-8">
      if (self === top) { 
      var acj = document.getElementById("acj"); 
      acj.parentNode.removeChild(acj); 
      } else { 
      top.location = self.location; 
      } 
      </script>
      
      
      <script type="text/javascript" charset="UTF-8">
      	loginIdRegExpr = /[^\s\\\<\>]/gi;
      	var app_messages = {
      							validateInvalidChars: "{0} has invalid characters.",
      							validateMinMaxLength: "Your answer should be {0}-{1} characters.",
      							validateDuplicateQuestion: "You can\u0027t select the same question again.",
      							validateEmptyAnswers: "Please enter the answer for question number(s)",
      							validateEmptyAnswer: "Please enter your answer.",
      							validateSelectQuestions: "Please select your questions.",
      							validatePasswordFormat: "Invalid password format.",
      							validatePasswordComplete: "Completed",
      							validatePasswordNotEntered: "Not entered.",
      							validateChallenge: "Please enter the answer."
      						};
      </script>
      
      
        <!-- 11.1.2.3.0.OAAM_11.1.2.3.0_GENERIC_RELEASE : N/A : oam -->
      </head>
      
      
      
      <body class="f17 f17v2">
        
      
      
      
      
      
      <style type="text/css">
      	.bharosaPage{
      		width:auto !important;
      	}
      </style>
      
      <script type="text/javascript" src="/oaam_server/client/oam/js/oaam_check.js?v=2.0"></script>
      <script type="text/javascript">
        if (top != self){
          if (top.location.replace){
            top.location.replace(self.location.href);
          } else {
            top.location.href = self.location.href;
          }
        }
      </script>
      <script>stripHTML();</script>
      
      <div class="f17w1">
      <div class="f17w2" style="display:none"><img src="/oaam_server/client/oam/images/sso-f17v2-bgimg.jpg"></div>
      
      <!-- U16v0 -->
      <div id="u16" class="u16 u16v0">
      	<div class="u16w1">
      		<a href="https://www.oracle.com/index.html">Oracle</a>
      	</div>
      </div>
      <!-- /U16v0 -->
      
      <!-- CB41v0 -->
      
      
            
            
              
      
      
      
      
      
      
      
      
      
      
      
      
      <div class="bharosaPageTitle">
          
      </div>
      <div class="bharosaPageMessage">
          
      </div>
      
      	  
      
          
              <div class="loginError" id="errorMessage" title="Your session has expired. &#160;&#160;Please try again.">
              <img src="/oaam_server/images/red_square.gif" height="7" width="7" align="top" valign="top" border="0" alt="Error">
            Your session has expired. &#160;&#160;Please try again.
              </div>
          
      
      <div class="loginFailLinks">
        
      </div>
      
            
            
      
        
      
      
      
      <script type="text/javascript" src="/oaam_server/client/oam/js/jquery.js?v=1.0"></script>
      <script type="text/javascript" src="/oaam_server/client/oam/js/sso.js?v=1.0"></script>
      </div>
      
      </body>
      
      </html>
      
      	at hudson.tools.JDKInstaller.locate(JDKInstaller.java:484)
      	at hudson.tools.JDKInstaller.performInstallation(JDKInstaller.java:139)
      	at hudson.tools.InstallerTranslator.getToolHome(InstallerTranslator.java:72)
      	at hudson.tools.ToolLocationNodeProperty.getToolHome(ToolLocationNodeProperty.java:109)
      	at hudson.tools.ToolInstallation.translateFor(ToolInstallation.java:206)
      	at hudson.model.JDK.forNode(JDK.java:144)
      	at hudson.model.AbstractProject.getEnvironment(AbstractProject.java:341)
      	at hudson.model.Run.getEnvironment(Run.java:2283)
      	at hudson.model.AbstractBuild.getEnvironment(AbstractBuild.java:878)
      	at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:102)
      	at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:66)
      	at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:736)
      	at hudson.model.Build$BuildExecution.build(Build.java:206)
      	at hudson.model.Build$BuildExecution.doRun(Build.java:163)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:496)
      	at hudson.model.Run.execute(Run.java:1737)
      	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
      	at hudson.model.ResourceController.execute(ResourceController.java:97)
      	at hudson.model.Executor.run(Executor.java:421)

      On Linux :

      14:15:21 Installing JDK jdk-8u121-oth-JPR
      14:15:21 Downloading JDK from http://download.oracle.com/otn/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.tar.gz
      14:15:29 java.io.IOException: Unable to find the login form
      14:15:29 	at hudson.tools.JDKInstaller.locate(JDKInstaller.java:464)
      14:15:29 	at hudson.tools.JDKInstaller.performInstallation(JDKInstaller.java:139)
      14:15:29 	at hudson.tools.InstallerTranslator.getToolHome(InstallerTranslator.java:72)
      14:15:29 	at hudson.tools.ToolLocationNodeProperty.getToolHome(ToolLocationNodeProperty.java:109)
      14:15:29 	at hudson.tools.ToolInstallation.translateFor(ToolInstallation.java:206)
      14:15:29 	at hudson.model.JDK.forNode(JDK.java:144)
      14:15:29 	at hudson.model.AbstractProject.getEnvironment(AbstractProject.java:341)
      14:15:29 	at hudson.model.Run.getEnvironment(Run.java:2283)
      14:15:29 	at hudson.model.AbstractBuild.getEnvironment(AbstractBuild.java:888)
      14:15:29 	at hudson.maven.AbstractMavenBuild.getEnvironment(AbstractMavenBuild.java:56)
      14:15:29 	at hudson.maven.MavenModuleSetBuild.getEnvironment(MavenModuleSetBuild.java:167)
      14:15:29 	at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1103)
      14:15:29 	at hudson.scm.SCM.checkout(SCM.java:495)
      14:15:29 	at hudson.model.AbstractProject.checkout(AbstractProject.java:1212)
      14:15:29 	at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:576)
      14:15:29 	at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
      14:15:29 	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:501)
      14:15:29 	at hudson.model.Run.execute(Run.java:1737)
      14:15:29 	at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:542)
      14:15:29 	at hudson.model.ResourceController.execute(ResourceController.java:97)
      14:15:29 	at hudson.model.Executor.run(Executor.java:421)

      Latest binaries (thus not archived and not protected are still ok) 

      It is a critical bug for all users of JDKInstallers cc danielbeckkohsuke, oleg_nenashev

          [JENKINS-47448] New Oracle website prevents the JDKInstaller to download binaries from archives (Unable to find a form in the response)

          Oleg Nenashev added a comment -

          My proposal would be to create a new ToolInstaller in a plugin and then to deprecate the core's one. It requires some work to make it correctly since JDKInstaller is a part of Jenkins' core API. Detaching to a pluggable core component would be reasonable, but the engine is not ready yet.

          Oleg Nenashev added a comment - My proposal would be to create a new ToolInstaller in a plugin and then to deprecate the core's one. It requires some work to make it correctly since JDKInstaller is a part of Jenkins' core API. Detaching to a pluggable core component would be reasonable, but the engine is not ready yet.

          If we had JENKINS-22367 ...

          Arnaud Héritier added a comment - If we had  JENKINS-22367 ...

          Oleg Nenashev added a comment - - edited

          I tried to decouple JDKInstaller as a part of SECURITY-555. It cannot be done in an easy way. JDK and JDKInstaller are the part of the core API. If I find some time, I could try to finalize my PoC. Likely I won't have time in October

          Oleg Nenashev added a comment - - edited I tried to decouple JDKInstaller as a part of SECURITY-555. It cannot be done in an easy way. JDK and JDKInstaller are the part of the core API. If I find some time, I could try to finalize my PoC. Likely I won't have time in October

          Jesse Glick added a comment -

          IMO all Jenkins downloadables should actually be hosted on servers controlled by Jenkins, and in the case of JDKs we should only ship OpenJDK binaries (at least pending changes to the legal restrictions for Oracle JDKs).

          Jesse Glick added a comment - IMO all Jenkins downloadables should actually be hosted on servers controlled by Jenkins, and in the case of JDKs we should only ship OpenJDK binaries (at least pending changes to the legal restrictions for Oracle JDKs).

          Daniel Beck added a comment -

          Infra changes will need rtyler's involvement, and I'm not sure that's a viable short-term measure here.

          Daniel Beck added a comment - Infra changes will need rtyler 's involvement, and I'm not sure that's a viable short-term measure here.

          Oleg Nenashev added a comment -

          Notes:

          • Downloads of older JDK versions are impacted (where we get redirected to login.oracle.com).
          • JDKInstaller in the core is impacted. We consider updating the code in the core and probably backporting to 2.73.3
          • Other impacted logic: SSH Slaves Plugin and Windows Slaves Plugin. For SSH Slaves the proposal is to bump default JDK version to 141, for Windows Slaves it seems to be totally broken even prior to the change (Java 6 is downloaded)

          Oleg Nenashev added a comment - Notes: Downloads of older JDK versions are impacted (where we get redirected to login.oracle.com). JDKInstaller in the core is impacted. We consider updating the code in the core and probably backporting to 2.73.3 Other impacted logic: SSH Slaves Plugin and Windows Slaves Plugin . For SSH Slaves the proposal is to bump default JDK version to 141, for Windows Slaves it seems to be totally broken even prior to the change (Java 6 is downloaded)

          Oleg Nenashev added a comment -

          Oleg Nenashev added a comment - Created PR for SSH Slaves: https://github.com/jenkinsci/ssh-slaves-plugin/pull/72

          Devin Nusbaum added a comment -

          Devin Nusbaum added a comment - Created PR for core: https://github.com/jenkinsci/jenkins/pull/3093

          Code changed in jenkins
          User: Oleg Nenashev
          Path:
          src/main/java/hudson/plugins/sshslaves/SSHLauncher.java
          src/test/java/hudson/plugins/sshslaves/SSHLauncherWithJDKInstallerTest.java
          http://jenkins-ci.org/commit/ssh-slaves-plugin/fbaa8301460b6e51901920c0257c56cc689e0c1d
          Log:
          JENKINS-47448 - Update the default Java version to 8u144 (#72)

          It works-around the issue with authentication for old JDK versions on the Oracle website.

          • JENKINS-47448 - Create direct unit test for the issue (disabled by default)

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Oleg Nenashev Path: src/main/java/hudson/plugins/sshslaves/SSHLauncher.java src/test/java/hudson/plugins/sshslaves/SSHLauncherWithJDKInstallerTest.java http://jenkins-ci.org/commit/ssh-slaves-plugin/fbaa8301460b6e51901920c0257c56cc689e0c1d Log: JENKINS-47448 - Update the default Java version to 8u144 (#72) JENKINS-47448 - Update the default Java version to 8u144 It works-around the issue with authentication for old JDK versions on the Oracle website. JENKINS-47448 - Create direct unit test for the issue (disabled by default) JENKINS-47448 - Add License header to the test

          Devin Nusbaum added a comment -

          Devin Nusbaum added a comment - Created PR for Windows Slaves: https://github.com/jenkinsci/windows-slaves-plugin/pull/11

          PRs using 144 are already deprecated/broken, Oracle just released versions 151 and 152 thus the 144 is now in archives
          http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

          cc oleg_nenashev dnusbaum

          Arnaud Héritier added a comment - PRs using 144 are already deprecated/broken, Oracle just released versions 151 and 152 thus the 144 is now in archives http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html cc oleg_nenashev dnusbaum

          Oleg Nenashev added a comment -

          Is there a way to automatically determine the latest available version? If yes let's just implement the logic which just picks the most recent version. It will cause some inconsistency on instances, but I feel it's fine for such non-production default mode anyway

          Oleg Nenashev added a comment - Is there a way to automatically determine the latest available version? If yes let's just implement the logic which just picks the most recent version. It will cause some inconsistency on instances, but I feel it's fine for such non-production default mode anyway

          Code changed in jenkins
          User: Oliver Gondža
          Path:
          src/main/java/org/jenkinsci/test/acceptance/po/JdkInstallation.java
          src/test/java/core/JdkTest.java
          http://jenkins-ci.org/commit/acceptance-test-harness/232f7884ba7c1e2080c33a4dcee3b8ea8ba7760b
          Log:
          Merge pull request #371 from dwnusbaum/JENKINS-47448

          JENKINS-47448 Fix JdkTest#autoinstallJDK

          Compare: https://github.com/jenkinsci/acceptance-test-harness/compare/9c9686c36f5b...232f7884ba7c

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Oliver Gondža Path: src/main/java/org/jenkinsci/test/acceptance/po/JdkInstallation.java src/test/java/core/JdkTest.java http://jenkins-ci.org/commit/acceptance-test-harness/232f7884ba7c1e2080c33a4dcee3b8ea8ba7760b Log: Merge pull request #371 from dwnusbaum/ JENKINS-47448 JENKINS-47448 Fix JdkTest#autoinstallJDK Compare: https://github.com/jenkinsci/acceptance-test-harness/compare/9c9686c36f5b...232f7884ba7c

          In the list of available installers we always have the latest one as first entry.

          Thus we need to ask to it what is the current latest

          Arnaud Héritier added a comment - In the list of available installers we always have the latest one as first entry. Thus we need to ask to it what is the current latest

          Oleg Nenashev added a comment - - edited

          aheritier The UpdateCenter-dependent logic is flaky, because we depend on the caching in UC. So the UC-dependent implementation will be unstable for several hours after each JDK release by Oracle, even if you make the installer logic to refresh data from UC each time.

          I would suggest implementing independent version polling logic in the default installer fallback logic.

          Oleg Nenashev added a comment - - edited aheritier The UpdateCenter-dependent logic is flaky, because we depend on the caching in UC. So the UC-dependent implementation will be unstable for several hours after each JDK release by Oracle, even if you make the installer logic to refresh data from UC each time. I would suggest implementing independent version polling logic in the default installer fallback logic.

          oleg_nenashev yes for sure we will have a delay but otherwise you will have to write twice the code to parse oracle pages ?

          And this page is changing. In the past slowly but if oracle speedup the release train, I imagine that we'll have a new page every year starting next year (Java 18, 19...). is it a problem to hardcode the URL ?

          J9: http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html

          J8: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

          ... https://github.com/aheritier/crawler/blob/4bc6748ec2fc1cfb92d16ef13343b4c45604bba0/jdk.groovy#L30

           

          Arnaud Héritier added a comment - oleg_nenashev yes for sure we will have a delay but otherwise you will have to write twice the code to parse oracle pages ? And this page is changing. In the past slowly but if oracle speedup the release train, I imagine that we'll have a new page every year starting next year (Java 18, 19...). is it a problem to hardcode the URL ? J9:  http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html J8: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ...  https://github.com/aheritier/crawler/blob/4bc6748ec2fc1cfb92d16ef13343b4c45604bba0/jdk.groovy#L30  

          Devin Nusbaum added a comment -

          I think that adding options for jdk-8-latest and jdk-9-latest which refresh data from the UC is the best short-term option here. Parsing the website directly is flaky too, since its structure could change at any time, and it's easier to update the crawler and re-run it than to update core.

          Long-term I agree with jglick that we should only offer OpenJDK downloads from servers we control, and anyone who needs to use the Oracle JDK can install it separately.

          Devin Nusbaum added a comment - I think that adding options for jdk-8-latest and jdk-9-latest which refresh data from the UC is the best short-term option here. Parsing the website directly is flaky too, since its structure could change at any time, and it's easier to update the crawler and re-run it than to update core. Long-term I agree with jglick that we should only offer OpenJDK downloads from servers we control, and anyone who needs to use the Oracle JDK can install it separately.

          Jesse Glick added a comment -

          I am not sure it is realistic to have ssh-slaves install a suitable JRE any more. Really it is the administrator’s responsibility to make sure the agent’s OS already has some JRE installed. OpenJDK does not even offer a tarball download for Linux AFAICT. There is a download site for Windows OpenJDK 9 but we do not run on 9 yet…

          Jesse Glick added a comment - I am not sure it is realistic to have ssh-slaves install a suitable JRE any more. Really it is the administrator’s responsibility to make sure the agent’s OS already has some JRE installed. OpenJDK does not even offer a tarball download for Linux  AFAICT. There is a download site for Windows OpenJDK 9 but we do not run on 9 yet…

          Code changed in jenkins
          User: Oleg Nenashev
          Path:
          core/src/main/java/hudson/tools/JDKInstaller.java
          test/src/test/java/hudson/tools/JDKInstallerTest.java
          http://jenkins-ci.org/commit/jenkins/136fe8255e6c2215b23ca6027a5fb69f863b1e93
          Log:
          Merge pull request #3093 from dwnusbaum/JENKINS-47448

          JENKINS-47448 Fix JDKInstaller for downloads requiring an Oracle login

          Compare: https://github.com/jenkinsci/jenkins/compare/987b60435112...136fe8255e6c

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Oleg Nenashev Path: core/src/main/java/hudson/tools/JDKInstaller.java test/src/test/java/hudson/tools/JDKInstallerTest.java http://jenkins-ci.org/commit/jenkins/136fe8255e6c2215b23ca6027a5fb69f863b1e93 Log: Merge pull request #3093 from dwnusbaum/ JENKINS-47448 JENKINS-47448 Fix JDKInstaller for downloads requiring an Oracle login Compare: https://github.com/jenkinsci/jenkins/compare/987b60435112...136fe8255e6c

          Daniel Beck added a comment -

          Merged towards 2.86.

          Daniel Beck added a comment - Merged towards 2.86.

          danielbeck I agree for the fix on jenkins core but for ssh-slave plugin the fix is wrong cc oleg_nenashev 1.8 u144 is already archived (See: https://github.com/jenkinsci/ssh-slaves-plugin/pull/72#pullrequestreview-70136079 ). Should we track core and ssh-plugin issues in 2 JIRA issues ? 

          Arnaud Héritier added a comment - danielbeck I agree for the fix on jenkins core but for ssh-slave plugin the fix is wrong cc oleg_nenashev  1.8 u144 is already archived (See: https://github.com/jenkinsci/ssh-slaves-plugin/pull/72#pullrequestreview-70136079  ). Should we track core and ssh-plugin issues in 2 JIRA issues ? 

          Daniel Beck added a comment -

          Should we track core and ssh-plugin issues in 2 JIRA issues ? 

          Probably best.

          Daniel Beck added a comment - Should we track core and ssh-plugin issues in 2 JIRA issues ?  Probably best.

          Phani Kumar added a comment - - edited

          I still have this issue in Windows 8.1 environment while I am trying to install JDK_1.8. Can anyone help me out on this?

          Phani Kumar added a comment - - edited I still have this issue in Windows 8.1 environment while I am trying to install JDK_1.8. Can anyone help me out on this?

          Devin Nusbaum added a comment - - edited

          phani_kumar What version of Jenkins are you running? I just tested to confirm the patch still works. For now you need Jenkins 2.86 or newer for the fix. 

          Devin Nusbaum added a comment - - edited phani_kumar What version of Jenkins are you running? I just tested to confirm the patch still works. For now you need Jenkins 2.86 or newer for the fix. 

          I'm seeing this with Jenkins 2.89

          Lionel Orellana added a comment - I'm seeing this with Jenkins 2.89

          Phani Kumar added a comment -

          dnusbaum I am using Jenkins 2.73.2.

          Phani Kumar added a comment - dnusbaum I am using Jenkins 2.73.2.

          We are using Jenkins master 2.73.3 

          This issue is also in jenkins slave - Unix slave, version 3.10.2

           

          Mariela Daventini added a comment - We are using Jenkins master 2.73.3  This issue is also in jenkins slave - Unix slave, version 3.10.2  

          Devin Nusbaum added a comment -

          I can confirm that this is now broken again on the latest master. phani_kumar 2.73.2 never had the fix.

          From some cursory testing it looks like the names of the username and password fields have been changed back to the same name as they were before the original change.

          Devin Nusbaum added a comment - I can confirm that this is now broken again on the latest master. phani_kumar 2.73.2 never had the fix. From some cursory testing it looks like the names of the username and password fields have been changed back to the same name as they were before the original change.

          Devin Nusbaum added a comment -

          I've submitted a PR that should support the old and new behaviors: https://github.com/jenkinsci/jenkins/pull/3136.

          Devin Nusbaum added a comment - I've submitted a PR that should support the old and new behaviors:  https://github.com/jenkinsci/jenkins/pull/3136 .

          Code changed in jenkins
          User: Devin Nusbaum
          Path:
          core/src/main/java/hudson/tools/JDKInstaller.java
          http://jenkins-ci.org/commit/jenkins/5c1fd7d60351dfbade6f76e8811c636b3d92f055
          Log:
          JENKINS-47448 Make JDKInstaller work for old login site as well (#3136)

          • Fix JDKInstaller to work with old and new Oracle login flow
          • Update Javadoc to explain that both login flows are supported

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Devin Nusbaum Path: core/src/main/java/hudson/tools/JDKInstaller.java http://jenkins-ci.org/commit/jenkins/5c1fd7d60351dfbade6f76e8811c636b3d92f055 Log: JENKINS-47448 Make JDKInstaller work for old login site as well (#3136) Fix JDKInstaller to work with old and new Oracle login flow Update Javadoc to explain that both login flows are supported

          Oleg Nenashev added a comment -

          I'd guess it's an LTS candidate again

          Oleg Nenashev added a comment - I'd guess it's an LTS candidate again

          Oleg Nenashev added a comment -

          The fix has been integrated towards 2.90

          Oleg Nenashev added a comment - The fix has been integrated towards 2.90

          Code changed in jenkins
          User: Devin Nusbaum
          Path:
          core/src/main/java/hudson/tools/JDKInstaller.java
          http://jenkins-ci.org/commit/jenkins/823b51f0baf35de539886f4259a482e33684b19a
          Log:
          JENKINS-47448 Make JDKInstaller work for old login site as well (#3136)

          • Fix JDKInstaller to work with old and new Oracle login flow
          • Update Javadoc to explain that both login flows are supported

          (cherry picked from commit 5c1fd7d60351dfbade6f76e8811c636b3d92f055)

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Devin Nusbaum Path: core/src/main/java/hudson/tools/JDKInstaller.java http://jenkins-ci.org/commit/jenkins/823b51f0baf35de539886f4259a482e33684b19a Log: JENKINS-47448 Make JDKInstaller work for old login site as well (#3136) Fix JDKInstaller to work with old and new Oracle login flow Update Javadoc to explain that both login flows are supported (cherry picked from commit 5c1fd7d60351dfbade6f76e8811c636b3d92f055)

            Unassigned Unassigned
            aheritier Arnaud Héritier
            Votes:
            1 Vote for this issue
            Watchers:
            13 Start watching this issue

              Created:
              Updated:
              Resolved: