Community
Participate
Working Groups
The page at http://ci.hudson-ci.org/view/All/people/ does not display. Following stack is printed: root cause java.lang.ClassCastException: hudson.scm.NullSCM cannot be cast to hudson.plugins.git.GitSCM hudson.plugins.git.GitChangeSet.isCreateAccountBaseOnCommitterEmail(GitChangeSet.java:296) hudson.plugins.git.GitChangeSet.getAuthor(GitChangeSet.java:256) hudson.model.View$People.getUserInfo(View.java:505) hudson.model.View$People.<init>(View.java:486) hudson.model.View.getPeople(View.java:457) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:601) org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:274) org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:187) org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:45) org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:565) org.kohsuke.stapler.Stapler.invoke(Stapler.java:650) org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:225) org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:45) org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:565) org.kohsuke.stapler.Stapler.invoke(Stapler.java:650) org.kohsuke.stapler.Stapler.invoke(Stapler.java:481) org.kohsuke.stapler.Stapler.service(Stapler.java:152) javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
Similar exception is thrown from Mailer (reported by viraj.purang) ERROR: Publisher hudson.tasks.Mailer aborted due to exception java.lang.ClassCastException: hudson.scm.NullSCM cannot be cast to hudson.plugins.git.GitSCM at hudson.plugins.git.GitChangeSet.isCreateAccountBaseOnCommitterEmail(GitChangeSet.java:296) at hudson.plugins.git.GitChangeSet.getAuthor(GitChangeSet.java:256) at hudson.model.AbstractBuild.hasParticipant(AbstractBuild.java:409) at hudson.model.AbstractProject.hasParticipant(AbstractProject.java:1709) at hudson.model.User.getProjects(User.java:384) at hudson.scm.MailAddressResolverImpl.findMailAddressFor(MailAddressResolverImpl.java:43) at hudson.tasks.MailAddressResolver.resolve(MailAddressResolver.java:88) at hudson.tasks.Mailer$UserProperty.getAddress(Mailer.java:542) at hudson.tasks.mail.impl.BaseBuildResultMail.buildCulpritList(BaseBuildResultMail.java:245) at hudson.tasks.mail.impl.BaseBuildResultMail.createEmptyMail(BaseBuildResultMail.java:155) at hudson.tasks.mail.impl.FailureBuildMail.getMail(FailureBuildMail.java:51) at hudson.tasks.MailSender.getMail(MailSender.java:128) at hudson.tasks.MailSender.execute(MailSender.java:74) at hudson.tasks.Mailer.perform(Mailer.java:112) at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:34) at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:736) at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:714) at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:690) at hudson.model.Build$RunnerImpl.post2(Build.java:163) at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:652) at hudson.model.Run.run(Run.java:1517) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44) at hudson.model.ResourceController.execute(ResourceController.java:82) at hudson.model.Executor.run(Executor.java:137)
Some of the jobs had git SCM and later on removed (or vice versa). Not necessarily the job which is failing. Hudson has a weird way of finding "people". That means Hudson looks through jobs and finds committer in changeset of builds and add it to "people". In order to send mail to committers, it search through "people" to find e-mail address. Weirdly it searches every job and every build the user might be involved (by way of being a committer). If SCM info was changed in a job between builds, then gets incorrectly cast. at hudson.model.AbstractBuild.hasParticipant(AbstractBuild.java:409) at hudson.model.AbstractProject.hasParticipant(AbstractProject.java:1709) at hudson.model.User.getProjects(User.java:384) at hudson.scm.MailAddressResolverImpl.findMailAddressFor(MailAddressResolverImpl.java:43) The quick solution is to fix git plugin and make sure the type is checked first.