Hi Guys,

      we recently upgraded our jenkins from 2.19.4 LTS to 2.32.1 LTS and we are facing an issue in jobs using JDK 6.

      If I run in master the exception below occours but the job succeds:

      Established TCP socket on 43500
      [spj-deploy-fabrica] $ /opt/jenkins-java/jdk1.6/bin/java -Duser.timezone=GMT-03:00 -Djavax.net.ssl.trustStore=/opt/security/cacert.jks -Djavax.net.ssl.trustStorePassword=jb05%c@c3rtP@5%w0rd -cp /var/procergs/build-tools/jenkins/plugins/maven-plugin/WEB-INF/lib/maven32-agent-1.8.1.jar:/opt/apache-maven-3/boot/plexus-classworlds-2.5.1.jar:/opt/apache-maven-3/conf/logging jenkins.maven3.agent.Maven32Main /opt/apache-maven-3 /opt/jboss-eap-7.0/domain/servers/JENKINS/tmp/vfs/temp/temp2beba3780575b554/content-1dac40c08d58316e/WEB-INF/lib/remoting-3.2.jar /var/procergs/build-tools/jenkins/plugins/maven-plugin/WEB-INF/lib/maven32-interceptor-1.8.1.jar /var/procergs/build-tools/jenkins/plugins/maven-plugin/WEB-INF/lib/maven3-interceptor-commons-1.8.1.jar 43500
      Exception in thread "main" java.lang.UnsupportedClassVersionError: hudson/remoting/Launcher : Unsupported major.minor version 51.0
      	at java.lang.ClassLoader.defineClass1(Native Method)
      	at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
      	at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
      	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
      	at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
      	at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
      	at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
      	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:389)
      	at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
      	at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:259)
      	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:242)
      	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:227)
      	at jenkins.maven3.agent.Maven32Main.main(Maven32Main.java:143)
      	at jenkins.maven3.agent.Maven32Main.main(Maven32Main.java:74)
      ERROR: ================================================================================
      ERROR: Invalid project setup: Connection reset
      ERROR: [JENKINS-18403][JENKINS-28294] JDK 'jdk1.6.0_27' not supported to run Maven projects.
      ERROR: Maven projects have to be launched with a Java version greater or equal to the minimum version required by the master.
      ERROR: Use the Maven JDK Toolchains (plugin) to build your maven project with an older JDK.
      ERROR: Retrying with slave Java and setting compile/test properties to point to /opt/jenkins-java/jdk1.6.
      ERROR: ================================================================================
      Established TCP socket on 48365
      [spj-deploy-fabrica] $ /opt/java/jdk1.8.0_91/jre/bin/java -Duser.timezone=GMT-03:00 -Djavax.net.ssl.trustStore=/opt/security/cacert.jks -Djavax.net.ssl.trustStorePassword=jb05%c@c3rtP@5%w0rd -cp /var/procergs/build-tools/jenkins/plugins/maven-plugin/WEB-INF/lib/maven32-agent-1.8.1.jar:/opt/apache-maven-3/boot/plexus-classworlds-2.5.1.jar:/opt/apache-maven-3/conf/logging jenkins.maven3.agent.Maven32Main /opt/apache-maven-3 /opt/jboss-eap-7.0/domain/servers/JENKINS/tmp/vfs/temp/temp2beba3780575b554/content-1dac40c08d58316e/WEB-INF/lib/remoting-3.2.jar /var/procergs/build-tools/jenkins/plugins/maven-plugin/WEB-INF/lib/maven32-interceptor-1.8.1.jar /var/procergs/build-tools/jenkins/plugins/maven-plugin/WEB-INF/lib/maven3-interceptor-commons-1.8.1.jar 48365
      <===[JENKINS REMOTING CAPACITY]===>channel started
      

      But when it runs on a slave it fails:

      Established TCP socket on 41401
      maven32-agent.jar already up to date
      maven32-interceptor.jar already up to date
      maven3-interceptor-commons.jar already up to date
      [spj-deploy-fabrica] $ /opt/jenkins-java/jdk1.6/bin/java -Duser.timezone=GMT-03:00 -Djavax.net.ssl.trustStore=/opt/security/cacert.jks -Djavax.net.ssl.trustStorePassword=jb05%c@c3rtP@5%w0rd -cp /home/procergs/jboss/jenkins-slave/maven32-agent.jar:/opt/apache-maven-3/boot/plexus-classworlds-2.5.1.jar:/opt/apache-maven-3/conf/logging jenkins.maven3.agent.Maven32Main /opt/apache-maven-3 /home/procergs/jboss/jenkins-slave/slave.jar /home/procergs/jboss/jenkins-slave/maven32-interceptor.jar /home/procergs/jboss/jenkins-slave/maven3-interceptor-commons.jar 41401
      Exception in thread "main" java.lang.UnsupportedClassVersionError: hudson/remoting/Launcher : Unsupported major.minor version 51.0
      	at java.lang.ClassLoader.defineClass1(Native Method)
      	at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
      	at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
      	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
      	at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
      	at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
      	at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
      	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:389)
      	at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
      	at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:259)
      	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:242)
      	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:227)
      	at jenkins.maven3.agent.Maven32Main.main(Maven32Main.java:143)
      	at jenkins.maven3.agent.Maven32Main.main(Maven32Main.java:74)
      [spj-deploy-fabrica] $ /bin/sh -xe /tmp/hudson4749605600898410228.sh
      + cp spj-ear/target/spj.ear /weblogic/beades/user_projects/domains//dom_xpj_004_w10/autodeploy
      cp: cannot stat 'spj-ear/target/spj.ear': No such file or directory
      Build step 'Executar shell' marked build as failure
      ERROR: Falhou ao analisar POMs
      java.io.EOFException: unexpected stream termination
      	at hudson.remoting.ChannelBuilder.negotiate(ChannelBuilder.java:365)
      	at hudson.remoting.ChannelBuilder.build(ChannelBuilder.java:310)
      	at hudson.slaves.Channels.forProcess(Channels.java:115)
      	at hudson.maven.AbstractMavenProcessFactory.newProcess(AbstractMavenProcessFactory.java:294)
      	at hudson.maven.ProcessCache.get(ProcessCache.java:236)
      	at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:798)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
      	at hudson.model.Run.execute(Run.java:1728)
      	at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:544)
      	at hudson.model.ResourceController.execute(ResourceController.java:98)
      	at hudson.model.Executor.run(Executor.java:404)
      Started calculate disk usage of build
      Finished Calculation of disk usage of build in 0 seconds
      Started calculate disk usage of workspace
      Finished Calculation of disk usage of workspace in  2 second
      Finished: FAILURE
      

      I don't know if it is related but there was a recent change in remoting in 2.27 (see JENKINS-37565)

          [JENKINS-40810] UnsupportedClassVersionError when using JDK6

          Rafael Pestano created issue -
          Rafael Pestano made changes -
          Epic Link New: JENKINS-37564 [ 173676 ]

          Rafael Pestano added a comment - - edited

          User error, the slave cannot access a file to execute a shell copy:

          cp: cannot stat 'spj-ear/target/spj.ear': No such file or directory

          The only strange thing is the UnsupportedClassVersionError but it doesn't affect job execution.

          Rafael Pestano added a comment - - edited User error, the slave cannot access a file to execute a shell copy: cp: cannot stat 'spj-ear/target/spj.ear': No such file or directory The only strange thing is the UnsupportedClassVersionError but it doesn't affect job execution.
          Rafael Pestano made changes -
          Resolution New: Fixed [ 1 ]
          Status Original: Open [ 1 ] New: Closed [ 6 ]

          Rafael Pestano added a comment - - edited

          What we noticed is that the build phase is skipped on slave and that's why we got a 'No such file or directory' (the shell script runs on a post step that is marked as 'run only if build succeds') because the binaries are generated at 'build' phase which was skipped (only on slave).

          Any hints?

          Rafael Pestano added a comment - - edited What we noticed is that the build phase is skipped on slave and that's why we got a 'No such file or directory' (the shell script runs on a post step that is marked as 'run only if build succeds') because the binaries are generated at 'build' phase which was skipped (only on slave). Any hints?
          Rafael Pestano made changes -
          Resolution Original: Fixed [ 1 ]
          Status Original: Closed [ 6 ] New: Reopened [ 4 ]

          Daniel Beck added a comment -

          I recommend you change your trust store password. You've published it above.

          JDK 6 is no longer supported for Maven projects as the error message clearly indicates. Use toolchains to build on JDK 6 and older instead.

          oleg_nenashev Could you confirm what I'm writing here?

          Daniel Beck added a comment - I recommend you change your trust store password. You've published it above. JDK 6 is no longer supported for Maven projects as the error message clearly indicates. Use toolchains to build on JDK 6 and older instead. oleg_nenashev Could you confirm what I'm writing here?

          Oleg Nenashev added a comment -

          Yes, Java 6 is no longer supported in Remoting since 3.0. It impacts all Remoting-dependent plugins including Maven Project Plugin.

          Jenkins core does not support JDK6 since 1.610, so it was just a question of time when the Maven project plugin fails.

          Maybe it worth mentioning it in the Maven Project Plugin Wiki.

          Oleg Nenashev added a comment - Yes, Java 6 is no longer supported in Remoting since 3.0. It impacts all Remoting-dependent plugins including Maven Project Plugin. Jenkins core does not support JDK6 since 1.610, so it was just a question of time when the Maven project plugin fails. Maybe it worth mentioning it in the Maven Project Plugin Wiki.
          Oleg Nenashev made changes -
          Epic Link Original: JENKINS-37564 [ 173676 ]
          Oleg Nenashev made changes -
          Labels Original: jenkins New: jenkins remoting

            Unassigned Unassigned
            rmpestano Rafael Pestano
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: