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

Migrating to Jenkins 1.462 : Bad version number in .class file (unable to load class com.google.common.collect.ImmutableSet)

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Blocker Blocker
    • core, jclouds-plugin
    • Tomcat 6.0.33
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03)
      Java HotSpot(TM) Server VM (build 1.5.0_22-b03, mixed mode)
      Solaris 2.10

      Can't start Jenkins 1.462 because of the following error on Java 5.

      SEVERE: Failed to initialize Jenkins
      java.lang.UnsupportedClassVersionError: Bad version number in .class file (unable to load class com.google.common.collect.ImmutableSet)
      at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2822)
      at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159)
      at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
      at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
      at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
      at hudson.security.PermissionScope.<init>(PermissionScope.java:70)
      at hudson.security.PermissionScope.<clinit>(PermissionScope.java:95)
      at hudson.security.Permission.<init>(Permission.java:179)
      at hudson.security.Permission.<clinit>(Permission.java:292)
      at jenkins.model.Jenkins.<clinit>(Jenkins.java:3817)
      at hudson.WebAppMain.installLogger(WebAppMain.java:256)
      at hudson.WebAppMain.contextInitialized(WebAppMain.java:107)
      at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)
      at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
      at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
      at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
      at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
      at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
      at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
      at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
      at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
      at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
      at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
      at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
      at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
      at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
      at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
      at org.apache.catalina.core.StandardService.start(StandardService.java:525)
      at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
      at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:592)
      at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
      at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
      May 2, 2012 12:30:44 PM org.apache.catalina.core.StandardContext start
      SEVERE: Error listenerStart
      May 2, 2012 12:30:44 PM org.apache.catalina.core.StandardContext start
      SEVERE: Context [/hudson] startup failed due to previous errors

      Reverting to 1.461 solve the issue.

          [JENKINS-13659] Migrating to Jenkins 1.462 : Bad version number in .class file (unable to load class com.google.common.collect.ImmutableSet)

          Laurent Schoelens created issue -

          Same here in another place: java.lang.ClassFormatError: Failed to load com.google.common.collect.ImmutableSet

          ERROR: Echec à la lecture des POMs
          java.io.IOException: Remote call on Channel to Maven [/home/hudson/.hudson/tools/JDK1.5.0_22/bin/java, -Xmx1024m, -XX:MaxPermSize=256m, -cp, /home/hudson/.hudson/plugins/maven-plugin/WEB-INF/lib/maven-agent-1.2.jar:/home/hudson/maven/boot/classworlds-1.1.jar, hudson.maven.agent.Main, /home/hudson/maven, /home/hudson/.hudson/war/WEB-INF/lib/remoting-2.13.jar, /home/hudson/.hudson/plugins/maven-plugin/WEB-INF/lib/maven-interceptor-1.2.jar, 46661, /home/hudson/.hudson/plugins/maven-plugin/WEB-INF/lib/maven2.1-interceptor-1.2.jar] failed
          	at hudson.remoting.Channel.call(Channel.java:655)
          	at hudson.maven.ProcessCache$MavenProcess.call(ProcessCache.java:156)
          	at hudson.maven.MavenModuleSetBuild$RunnerImpl.doRun(MavenModuleSetBuild.java:791)
          	at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:475)
          	at hudson.model.Run.run(Run.java:1434)
          	at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:477)
          	at hudson.model.ResourceController.execute(ResourceController.java:88)
          	at hudson.model.Executor.run(Executor.java:239)
          Caused by: java.lang.ClassFormatError: Failed to load com.google.common.collect.ImmutableSet
          	at hudson.remoting.RemoteClassLoader.loadClassFile(RemoteClassLoader.java:154)
          	at hudson.remoting.RemoteClassLoader.findClass(RemoteClassLoader.java:131)
          	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
          	at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
          	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
          	at hudson.security.PermissionScope.<init>(PermissionScope.java:70)
          	at hudson.security.PermissionScope.<clinit>(PermissionScope.java:95)
          	at hudson.security.Permission.<init>(Permission.java:179)
          	at hudson.security.Permission.<clinit>(Permission.java:292)
          	at hudson.model.Run.<clinit>(Run.java:2038)
          	at hudson.maven.Maven2Builder.call(Maven2Builder.java:74)
          	at hudson.maven.Maven2Builder.call(Maven2Builder.java:53)
          	at hudson.remoting.UserRequest.perform(UserRequest.java:118)
          	at hudson.remoting.UserRequest.perform(UserRequest.java:48)
          	at hudson.remoting.Request$2.run(Request.java:287)
          	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
          	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
          	at java.util.concurrent.FutureTask.run(FutureTask.java:123)
          	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651)
          	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676)
          	at java.lang.Thread.run(Thread.java:595)
          Caused by: java.lang.UnsupportedClassVersionError: Bad version number in .class file
          	at java.lang.ClassLoader.defineClass1(Native Method)
          	at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
          	at java.lang.ClassLoader.defineClass(ClassLoader.java:466)
          	at hudson.remoting.RemoteClassLoader.loadClassFile(RemoteClassLoader.java:152)
          	... 20 more
          

          Reverted to 1.460: OK.

          Sylvain Veyrié added a comment - Same here in another place: java.lang.ClassFormatError: Failed to load com.google.common.collect.ImmutableSet ERROR: Echec à la lecture des POMs java.io.IOException: Remote call on Channel to Maven [/home/hudson/.hudson/tools/JDK1.5.0_22/bin/java, -Xmx1024m, -XX:MaxPermSize=256m, -cp, /home/hudson/.hudson/plugins/maven-plugin/WEB-INF/lib/maven-agent-1.2.jar:/home/hudson/maven/boot/classworlds-1.1.jar, hudson.maven.agent.Main, /home/hudson/maven, /home/hudson/.hudson/war/WEB-INF/lib/remoting-2.13.jar, /home/hudson/.hudson/plugins/maven-plugin/WEB-INF/lib/maven-interceptor-1.2.jar, 46661, /home/hudson/.hudson/plugins/maven-plugin/WEB-INF/lib/maven2.1-interceptor-1.2.jar] failed at hudson.remoting.Channel.call(Channel.java:655) at hudson.maven.ProcessCache$MavenProcess.call(ProcessCache.java:156) at hudson.maven.MavenModuleSetBuild$RunnerImpl.doRun(MavenModuleSetBuild.java:791) at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:475) at hudson.model.Run.run(Run.java:1434) at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:477) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:239) Caused by: java.lang.ClassFormatError: Failed to load com.google.common.collect.ImmutableSet at hudson.remoting.RemoteClassLoader.loadClassFile(RemoteClassLoader.java:154) at hudson.remoting.RemoteClassLoader.findClass(RemoteClassLoader.java:131) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) at hudson.security.PermissionScope.<init>(PermissionScope.java:70) at hudson.security.PermissionScope.<clinit>(PermissionScope.java:95) at hudson.security.Permission.<init>(Permission.java:179) at hudson.security.Permission.<clinit>(Permission.java:292) at hudson.model.Run.<clinit>(Run.java:2038) at hudson.maven.Maven2Builder.call(Maven2Builder.java:74) at hudson.maven.Maven2Builder.call(Maven2Builder.java:53) at hudson.remoting.UserRequest.perform(UserRequest.java:118) at hudson.remoting.UserRequest.perform(UserRequest.java:48) at hudson.remoting.Request$2.run(Request.java:287) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269) at java.util.concurrent.FutureTask.run(FutureTask.java:123) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676) at java.lang.Thread.run(Thread.java:595) Caused by: java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:621) at java.lang.ClassLoader.defineClass(ClassLoader.java:466) at hudson.remoting.RemoteClassLoader.loadClassFile(RemoteClassLoader.java:152) ... 20 more Reverted to 1.460: OK.

          sogabe added a comment -

          In Jenkins 1.462, guava library was updated to 12.0-rc1 from 11.0.1. [1]
          However, Guava 12.0 is the first release to require JDK6. See [2].

          [1] https://github.com/jenkinsci/jenkins/pull/444
          [2] http://code.google.com/p/guava-libraries/wiki/Release12

          sogabe added a comment - In Jenkins 1.462, guava library was updated to 12.0-rc1 from 11.0.1. [1] However, Guava 12.0 is the first release to require JDK6. See [2] . [1] https://github.com/jenkinsci/jenkins/pull/444 [2] http://code.google.com/p/guava-libraries/wiki/Release12

          Adrian Cole added a comment -

          seems that as long as we want to perpetually support JDK 5, then we should rollback to guava 11.0.2

          Fodder for another issue, but we really ought to update support matrix over time so we can phase out support for aging JDKs.
          https://wiki.jenkins-ci.org/display/JENKINS/Java+5+Compatibility

          Adrian Cole added a comment - seems that as long as we want to perpetually support JDK 5, then we should rollback to guava 11.0.2 Fodder for another issue, but we really ought to update support matrix over time so we can phase out support for aging JDKs. https://wiki.jenkins-ci.org/display/JENKINS/Java+5+Compatibility

          I think that I'm not the only one that cannot run Jenkins on JDK6, because of server configuration.

          It's not the first time JDK5 support is broken because of dependencies update (see JENKINS-6653).
          If JDK5 is to not be supported for future version of Jenkins, it should be outlined in Changelog, but I don't think it was the main goal of updating guava library.

          Laurent Schoelens added a comment - I think that I'm not the only one that cannot run Jenkins on JDK6, because of server configuration. It's not the first time JDK5 support is broken because of dependencies update (see JENKINS-6653 ). If JDK5 is to not be supported for future version of Jenkins, it should be outlined in Changelog, but I don't think it was the main goal of updating guava library.
          sogabe made changes -
          Link New: This issue is duplicated by JENKINS-13667 [ JENKINS-13667 ]

          sogabe added a comment -

          added jcloud plugin to component

          sogabe added a comment - added jcloud plugin to component
          sogabe made changes -
          Component/s New: jclouds [ 16529 ]

          I should add that I am running Jenkins on JDK6. That's my Maven build that is using JDK5 (by Jenkins configuration).

          So this is not only about JDK5 Jenkins support, but also about JDK5 projects build support. This last one should be dropped far latter, to be able to manage legacy projects.

          Sylvain Veyrié added a comment - I should add that I am running Jenkins on JDK6. That's my Maven build that is using JDK5 (by Jenkins configuration). So this is not only about JDK5 Jenkins support, but also about JDK5 projects build support. This last one should be dropped far latter, to be able to manage legacy projects.

          Code changed in jenkins
          User: olivier lamy
          Path:
          pom.xml
          http://jenkins-ci.org/commit/jenkins/7056ba34fbc96791dd110c6384a4271e0022a06d
          Log:
          JENKINS-13659 back to guava 11.0.1.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: olivier lamy Path: pom.xml http://jenkins-ci.org/commit/jenkins/7056ba34fbc96791dd110c6384a4271e0022a06d Log: JENKINS-13659 back to guava 11.0.1.

            olamy Olivier Lamy
            laurents59 Laurent Schoelens
            Votes:
            3 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved: