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)

          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: