diff --git a/core/src/main/java/hudson/model/AbstractProject.java b/core/src/main/java/hudson/model/AbstractProject.java index 3f477f83e536bf7e01007d43c29f9b8fbccb003b..319f355fd508bbb2731bd50dc876aded4faf742b 100644 --- a/core/src/main/java/hudson/model/AbstractProject.java +++ b/core/src/main/java/hudson/model/AbstractProject.java @@ -324,11 +324,13 @@ public abstract class AbstractProject
,R extends A buildMixIn.onLoad(parent, name); builds = buildMixIn.getRunMap(); triggers().setOwner(this); - for (Trigger t : triggers()) { - try { - t.start(this, Items.currentlyUpdatingByXml()); - } catch (Throwable e) { - LOGGER.log(Level.WARNING, "could not start trigger while loading project '" + getFullName() + "'", e); + if (isBuildable()) { + for (Trigger t : triggers()) { + try { + t.start(this, Items.currentlyUpdatingByXml()); + } catch (Throwable e) { + LOGGER.log(Level.WARNING, "could not start trigger while loading project '" + getFullName() + "'", e); + } } } if(scm==null) @@ -1879,8 +1881,10 @@ public abstract class AbstractProject
,R extends A
for (Trigger t : triggers())
t.stop();
triggers.replaceBy(buildDescribable(req, Trigger.for_(this)));
- for (Trigger t : triggers())
- t.start(this,true);
+ if (isBuildable()) {
+ for (Trigger t : triggers())
+ t.start(this, true);
+ }
}
/**
diff --git a/core/src/main/java/hudson/triggers/Trigger.java b/core/src/main/java/hudson/triggers/Trigger.java
index 6f5c922d2603d06c324cc8858cc1a585bca5f84e..a6b6443a0a1c51b3f90c98e959a337c4d3d63297 100644
--- a/core/src/main/java/hudson/triggers/Trigger.java
+++ b/core/src/main/java/hudson/triggers/Trigger.java
@@ -99,6 +99,8 @@ public abstract class Trigger
+ * Maybe run even before {@link #start(hudson.model.Item, boolean)}, prepare for it.
*/
public void run() {}
@@ -241,6 +243,10 @@ public abstract class Trigger