jenkinsci / slack-plugin

A Jenkins plugin for posting notifications to a Slack channel
https://plugins.jenkins.io/slack/
MIT License
669 stars 413 forks source link

New problem with global-slack-notifier #450

Closed matejsp closed 5 years ago

matejsp commented 5 years ago

After fixing getBot() in 2.9. Now there are new changes in 2.10 that breaks global-slack-notifier. This was broken in https://github.com/jenkinsci/slack-plugin/pull/385 and https://github.com/jenkinsci/slack-plugin/commit/2959088c7bfb8855085a288e6dafbaef7cb87280.

Perhaps an integration build with global slack notifier plugin should be setup ASAP. Or you could merge code from both plugins into one. IMHO there is not need to split (basic) functionalities.

java.lang.NoSuchMethodError: jenkins.plugins.slack.SlackNotifier.<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZZZZZZZZZZLjenkins/plugins/slack/CommitInfoChoice;ZLjava/lang/String;)V
    at org.jenkinsci.plugins.globalslack.GlobalSlackNotifier.publish(GlobalSlackNotifier.java:101)
    at org.jenkinsci.plugins.globalslack.GlobalSlackNotifier.onCompleted(GlobalSlackNotifier.java:32)
    at hudson.model.listeners.RunListener.fireCompleted(RunListener.java:211)
    at org.jenkinsci.plugins.workflow.job.WorkflowRun.finish(WorkflowRun.java:586)
    at org.jenkinsci.plugins.workflow.job.WorkflowRun.access$900(WorkflowRun.java:133)
    at org.jenkinsci.plugins.workflow.job.WorkflowRun$GraphL.onNewHead(WorkflowRun.java:998)
    at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1440)
    at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:417)
    at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:35)
    at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:131)
    at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
    at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

And after trying to build global-slack-notifier (after 2.9 getBot fix):

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:compile (default-compile) on project global-slack-notifier: Compilation failure
[ERROR] /Users/mspiller/temp/global-slack-notifier-plugin/src/main/java/org/jenkinsci/plugins/globalslack/GlobalSlackNotifier.java:[97,36] constructor SlackNotifier in class jenkins.plugins.slack.SlackNotifier cannot be applied to given types;
[ERROR]   required: java.lang.String,java.lang.String,java.lang.String,boolean,java.lang.String,java.lang.String,java.lang.String,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,jenkins.plugins.slack.CommitInfoChoice,boolean,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String
[ERROR]   found: java.lang.String,java.lang.String,java.lang.String,boolean,java.lang.String,java.lang.String,java.lang.String,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,jenkins.plugins.slack.CommitInfoChoice,boolean,java.lang.String
[ERROR]   reason: actual and formal argument lists differ in length
[ERROR]
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
timja commented 5 years ago

Not really sure how to handle this, maybe add a builder? I don't want to be leaving different constructors around every time a constructor param is added