Tested on stable 1.6 and weekly build 2.3.
Project in question does not use any functionality from slack-plugin and there is no post-build task for slack-plugin in this project. Trying to add post-build task results in same exception.
When trying to save changes in 2 months old multi-branch project, exception happens:
{{javax.servlet.ServletException: java.lang.AssertionError: class jenkins.plugins.slack.SlackNotifier$SlackJobProperty is missing its descriptor at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:796) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876) at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:233) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649) at org.kohsuke.stapler.Stapler.service(Stapler.java:238) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135) at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:49) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76) at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) at org.eclipse.jetty.server.Server.handle(Server.java:499) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544) at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.AssertionError: class jenkins.plugins.slack.SlackNotifier$SlackJobProperty is missing its descriptor at jenkins.model.Jenkins.getDescriptorOrDie(Jenkins.java:1302) at hudson.model.JobProperty.getDescriptor(JobProperty.java:105) at hudson.model.JobProperty.getDescriptor(JobProperty.java:79) at hudson.util.DescribableList.get(DescribableList.java:127) at hudson.util.DescribableList.rebuild(DescribableList.java:168) at hudson.model.Job.doConfigSubmit(Job.java:1218) at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:795) at com.github.mjdetullio.jenkins.plugins.multibranch.AbstractMultiBranchProject.submit(AbstractMultiBranchProject.java:539) at com.cloudbees.hudson.plugins.folder.AbstractFolder.doConfigSubmit(AbstractFolder.java:686) at com.cloudbees.hudson.plugins.folder.computed.ComputedFolder.doConfigSubmit(ComputedFolder.java:225) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:324) at org.kohsuke.stapler.interceptor.RequirePOST$Processor.invoke(RequirePOST.java:52) at org.kohsuke.stapler.PreInvokeInterceptedFunction.invoke(PreInvokeInterceptedFunction.java:26) at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:167) at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:100) at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:124) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746) ... 58 more}}
Config from project (SCM link replaced for privacy): {{ <?xml version='1.0' encoding='UTF-8'?> <freestyle-multi-branch-project plugin="multi-branch-...@0.4.2"> <actions/> <description></description> <properties> <com.cloudbees.hudson.plugins.folder.properties.FolderCredentialsProvider_-FolderCredentialsProperty plugin="cloudbee...@5.10"> <domainCredentialsMap class="hudson.util.CopyOnWriteMap$Hash"> <entry> <com.cloudbees.plugins.credentials.domains.Domain plugin="crede...@1.28"> <specifications/> </com.cloudbees.plugins.credentials.domains.Domain> <java.util.concurrent.CopyOnWriteArrayList/> </entry> </domainCredentialsMap> </com.cloudbees.hudson.plugins.folder.properties.FolderCredentialsProvider_-FolderCredentialsProperty> </properties> <views> <branch-list-view> <owner class="freestyle-multi-branch-project" reference="../../.."/> <name>All</name> <filterExecutors>false</filterExecutors> <filterQueue>false</filterQueue> <properties class="hudson.model.View$PropertyList"/> <jobNames> <comparator class="hudson.util.CaseInsensitiveComparator"/> </jobNames> <jobFilters/> <columns> <hudson.views.StatusColumn/> <hudson.views.WeatherColumn/> <hudson.views.JobColumn/> <hudson.views.LastSuccessColumn/> <hudson.views.LastFailureColumn/> <hudson.views.LastDurationColumn/> <hudson.views.BuildButtonColumn/> </columns> <includeRegex>.*</includeRegex> <recurse>false</recurse> </branch-list-view> </views> <viewsTabBar class="hudson.views.DefaultViewsTabBar"/> <primaryView>All</primaryView> <healthMetrics> <com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric plugin="cloudbee...@5.10"/> </healthMetrics> <icon class="com.cloudbees.hudson.plugins.folder.icons.StockFolderIcon" plugin="cloudbee...@5.10"/> <orphanedItemStrategy class="com.cloudbees.hudson.plugins.folder.computed.DefaultOrphanedItemStrategy" plugin="cloudbee...@5.10"> <pruneDeadBranches>true</pruneDeadBranches> <daysToKeep>0</daysToKeep> <numToKeep>25</numToKeep> </orphanedItemStrategy> <triggers> <hudson.triggers.TimerTrigger> <spec>H/24 * * * *</spec> </hudson.triggers.TimerTrigger> </triggers> <disabled>false</disabled> <disabledSubProjects/> <allowAnonymousSync>false</allowAnonymousSync> <suppressTriggerNewBranchBuild>false</suppressTriggerNewBranchBuild> <scmSource class="jenkins.plugins.git.GitSCMSource" plugin="g...@2.4.4"> <id>dc02f5cb-ebd5-4f16-bbe7-c4877862cb52</id> <remote>GIT_REPOSITORY_REMOVED</remote> <credentialsId>b09f49f3-cc0a-49ad-88b7-bde670992ea6</credentialsId> <includes>*</includes> <excludes></excludes> <ignoreOnPushNotifications>false</ignoreOnPushNotifications> </scmSource> }}
template/config.xml with identifying info removed:
{{ <?xml version='1.0' encoding='UTF-8'?> <project> <keepDependencies>false</keepDependencies> <properties> <hudson.security.AuthorizationMatrixProperty> <permission>com.cloudbees.plugins.credentials.CredentialsProvider.Update:user1</permission> <permission>hudson.model.Run.Delete:user1</permission> <permission>hudson.model.Item.Workspace:user1</permission> <permission>com.cloudbees.plugins.credentials.CredentialsProvider.Delete:user1</permission> <permission>com.cloudbees.plugins.credentials.CredentialsProvider.ManageDomains:user1</permission> <permission>hudson.model.Item.Configure:user1</permission> <permission>hudson.model.Item.Cancel:user1</permission> <permission>hudson.model.Item.Delete:user1</permission> <permission>hudson.model.Item.Read:user1</permission> <permission>com.cloudbees.plugins.credentials.CredentialsProvider.View:user1</permission> <permission>com.cloudbees.plugins.credentials.CredentialsProvider.Create:user1</permission> <permission>hudson.model.Item.Build:user1</permission> <permission>hudson.model.Item.Move:user1</permission> <permission>hudson.model.Item.Discover:user1</permission> <permission>hudson.model.Item.ViewStatus:user1</permission> <permission>hudson.model.Run.Update:user1</permission> </hudson.security.AuthorizationMatrixProperty> <jenkins.plugins.slack.SlackNotifier_-SlackJobProperty plugin="sl...@2.0.1"> <teamDomain></teamDomain> <token></token> <room></room> <startNotification>false</startNotification> <notifySuccess>false</notifySuccess> <notifyAborted>false</notifyAborted> <notifyNotBuilt>false</notifyNotBuilt> <notifyUnstable>false</notifyUnstable> <notifyFailure>false</notifyFailure> <notifyBackToNormal>false</notifyBackToNormal> <notifyRepeatedFailure>false</notifyRepeatedFailure> <includeTestSummary>false</includeTestSummary> <showCommitList>false</showCommitList> <includeCustomMessage>false</includeCustomMessage> <customMessage></customMessage> </jenkins.plugins.slack.SlackNotifier_-SlackJobProperty> </properties> <scm class="hudson.scm.NullSCM"/> <canRoam>true</canRoam> <disabled>true</disabled> <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding> <triggers> <hudson.triggers.SCMTrigger> <spec>H/5 * * * *</spec> <ignorePostCommitHooks>false</ignorePostCommitHooks> </hudson.triggers.SCMTrigger> </triggers> <concurrentBuild>false</concurrentBuild> <builders> <hudson.plugins.gradle.Gradle plugin="gra...@1.24"> <description></description> <switches></switches> <tasks>app:assembleDebug</tasks> <rootBuildScriptDir></rootBuildScriptDir> <buildFile></buildFile> <gradleName>(Default)</gradleName> <useWrapper>true</useWrapper> <makeExecutable>true</makeExecutable> <fromRootBuildScriptDir>true</fromRootBuildScriptDir> <useWorkspaceAsHome>false</useWorkspaceAsHome> </hudson.plugins.gradle.Gradle> </builders> <publishers> <hudson.tasks.ArtifactArchiver> <artifacts>app/build/outputs/apk/*.apk</artifacts> <allowEmptyArchive>false</allowEmptyArchive> <onlyIfSuccessful>false</onlyIfSuccessful> <fingerprint>false</fingerprint> <defaultExcludes>true</defaultExcludes> <caseSensitive>true</caseSensitive> </hudson.tasks.ArtifactArchiver> </publishers> <buildWrappers/> }}
|