diff --git a/core/src/main/java/hudson/model/AbstractProject.java b/core/src/main/java/hudson/model/AbstractProject.java
index e32b49ca49a6ec96a951aa101cba8404ed982023..7fc86078f14a8650f190409f06f7153277df22ad 100644
--- a/core/src/main/java/hudson/model/AbstractProject.java
+++ b/core/src/main/java/hudson/model/AbstractProject.java
@@ -68,8 +68,6 @@ import org.kohsuke.stapler.QueryParameter;
import org.kohsuke.stapler.HttpResponse;
import org.kohsuke.stapler.HttpRedirect;
import org.kohsuke.stapler.ForwardToView;
-import org.kohsuke.args4j.Argument;
-
import javax.servlet.ServletException;
import java.io.File;
@@ -225,6 +223,7 @@ public abstract class AbstractProject
,R extends A
updateTransientActions();
}
+ @Override
protected void performDelete() throws IOException, InterruptedException {
// prevent a new build while a delete operation is in progress
makeDisabled(true);
@@ -293,7 +292,7 @@ public abstract class AbstractProject
,R extends A
*
* @return the root project value.
*/
- public AbstractProject getRootProject() {
+ public AbstractProject getRootProject() {
if (this.getParent() instanceof Hudson) {
return this;
} else {
@@ -405,7 +404,7 @@ public abstract class AbstractProject
,R extends A
}
public boolean hasCustomScmCheckoutRetryCount(){
- return scmCheckoutRetryCount != null;
+ return scmCheckoutRetryCount != null;
}
public final boolean isBuildable() {
@@ -421,12 +420,12 @@ public abstract class AbstractProject
,R extends A
}
public boolean blockBuildWhenUpstreamBuilding() {
- return blockBuildWhenUpstreamBuilding;
+ return blockBuildWhenUpstreamBuilding;
}
public void setBlockBuildWhenUpstreamBuilding(boolean b) throws IOException {
- blockBuildWhenUpstreamBuilding = b;
- save();
+ blockBuildWhenUpstreamBuilding = b;
+ save();
}
public boolean isDisabled() {
@@ -437,13 +436,13 @@ public abstract class AbstractProject
,R extends A
* Validates the retry count Regex
*/
public FormValidation doCheckRetryCount(@QueryParameter String value)throws IOException,ServletException{
- // retry count is optional so this is ok
- if(value == null || value.trim().equals(""))
- return FormValidation.ok();
- if (!value.matches("[0-9]*")) {
- return FormValidation.error("Invalid retry count");
- }
- return FormValidation.ok();
+ // retry count is optional so this is ok
+ if(value == null || value.trim().equals(""))
+ return FormValidation.ok();
+ if (!value.matches("[0-9]*")) {
+ return FormValidation.error("Invalid retry count");
+ }
+ return FormValidation.ok();
}
/**
@@ -676,16 +675,16 @@ public abstract class AbstractProject
,R extends A
return defValues;
}
- /**
+ /**
* Schedules a build, and returns a {@link Future} object
* to wait for the completion of the build.
*
*
- * Production code shouldn't be using this, but for tests, this is very convenience, so this isn't marked
+ * Production code shouldn't be using this, but for tests this is very convenient, so this isn't marked
* as deprecated.
- */
+ */
public Future scheduleBuild2(int quietPeriod) {
- return scheduleBuild2(quietPeriod, new LegacyCodeCause());
+ return scheduleBuild2(quietPeriod, new LegacyCodeCause());
}
/**
@@ -817,6 +816,7 @@ public abstract class AbstractProject,R extends A
* {@link BuildStep}s and others who want to add a project action
* should do so by implementing {@link BuildStep#getProjectAction(AbstractProject)}.
*/
+ @Override
public synchronized List getActions() {
// add all the transient actions, too
List actions = new Vector(super.getActions());
@@ -1229,9 +1229,10 @@ public abstract class AbstractProject,R extends A
*/
protected abstract void buildDependencyGraph(DependencyGraph graph);
+ @Override
protected SearchIndexBuilder makeSearchIndex() {
SearchIndexBuilder sib = super.makeSearchIndex();
- if(isBuildable() && Hudson.isAdmin())
+ if(isBuildable() && hasPermission(Hudson.ADMINISTER))
sib.add("build","build");
return sib;
}
diff --git a/core/src/main/java/hudson/model/Item.java b/core/src/main/java/hudson/model/Item.java
index 0c4e615987085bd7d52af7af79515e782ba1729b..3917c1f707e478708eb315becdcf4e799a86276f 100644
--- a/core/src/main/java/hudson/model/Item.java
+++ b/core/src/main/java/hudson/model/Item.java
@@ -192,10 +192,10 @@ public interface Item extends PersistenceRoot, SearchableModelObject, AccessCont
public void delete() throws IOException, InterruptedException;
public static final PermissionGroup PERMISSIONS = new PermissionGroup(Item.class,Messages._Item_Permissions_Title());
- public static final Permission CREATE = new Permission(PERMISSIONS,"Create", Permission.CREATE);
- public static final Permission DELETE = new Permission(PERMISSIONS,"Delete", Permission.DELETE);
- public static final Permission CONFIGURE = new Permission(PERMISSIONS,"Configure", Permission.CONFIGURE);
- public static final Permission READ = new Permission(PERMISSIONS,"Read", Permission.READ);
+ public static final Permission CREATE = new Permission(PERMISSIONS, "Create", null, Permission.CREATE);
+ public static final Permission DELETE = new Permission(PERMISSIONS, "Delete", null, Permission.DELETE);
+ public static final Permission CONFIGURE = new Permission(PERMISSIONS, "Configure", null, Permission.CONFIGURE);
+ public static final Permission READ = new Permission(PERMISSIONS, "Read", null, Permission.READ);
public static final Permission EXTENDED_READ = new Permission(PERMISSIONS,"ExtendedRead", Messages._AbstractProject_ExtendedReadPermission_Description(), CONFIGURE, Boolean.getBoolean("hudson.security.ExtendedReadPermission"));
public static final Permission BUILD = new Permission(PERMISSIONS, "Build", Messages._AbstractProject_BuildPermission_Description(), Permission.UPDATE);
public static final Permission WORKSPACE = new Permission(PERMISSIONS, "Workspace", Messages._AbstractProject_WorkspacePermission_Description(), Permission.READ);
diff --git a/core/src/main/java/hudson/model/Job.java b/core/src/main/java/hudson/model/Job.java
index 60be4f8c7e66b776395b142c3c0504ec8c73810a..914202c878ff9b84e876094a81769098648d4a1b 100644
--- a/core/src/main/java/hudson/model/Job.java
+++ b/core/src/main/java/hudson/model/Job.java
@@ -145,6 +145,7 @@ public abstract class Job, RunT extends Run parent, String name)
throws IOException {
super.onLoad(parent, name);
@@ -178,6 +179,7 @@ public abstract class Job, RunT extends Run, RunT extends Run result) {
@@ -537,7 +540,7 @@ public abstract class Job, RunT extends Run, RunT extends Run m = _getRuns().headMap(n - 1); // the
- // map
- // should
- // include
- // n,
- // so
- // n-1
+ SortedMap m = _getRuns().headMap(n - 1); // the map should
+ // include n, so n-1
if (m.isEmpty())
return null;
return m.get(m.lastKey());
@@ -634,6 +632,7 @@ public abstract class Job, RunT extends Run, RunT extends Run, RunT extends Run, RunT extends Run getAll() {
- return ComputerSet.get_monitors();
+ return ComputerSet.getMonitors().toList();
}
/**
diff --git a/core/src/main/java/hudson/security/Permission.java b/core/src/main/java/hudson/security/Permission.java
index 8050a26428ddce8898f90465ddd7063fe6d9797b..1fbfe3f6efe01789ef70e73ccc7daa11e7d0b9b1 100644
--- a/core/src/main/java/hudson/security/Permission.java
+++ b/core/src/main/java/hudson/security/Permission.java
@@ -184,6 +184,7 @@ public final class Permission {
}
}
+ @Override
public String toString() {
return "Permission["+owner+','+name+']';
}
@@ -258,30 +259,30 @@ public final class Permission {
/**
* Generic read access.
*/
- public static final Permission READ = new Permission(GROUP,"GenericRead",HUDSON_ADMINISTER);
+ public static final Permission READ = new Permission(GROUP,"GenericRead",null,HUDSON_ADMINISTER);
/**
* Generic write access.
*/
- public static final Permission WRITE = new Permission(GROUP,"GenericWrite",HUDSON_ADMINISTER);
+ public static final Permission WRITE = new Permission(GROUP,"GenericWrite",null,HUDSON_ADMINISTER);
/**
* Generic create access.
*/
- public static final Permission CREATE = new Permission(GROUP,"GenericCreate",WRITE);
+ public static final Permission CREATE = new Permission(GROUP,"GenericCreate",null,WRITE);
/**
* Generic update access.
*/
- public static final Permission UPDATE = new Permission(GROUP,"GenericUpdate",WRITE);
+ public static final Permission UPDATE = new Permission(GROUP,"GenericUpdate",null,WRITE);
/**
* Generic delete access.
*/
- public static final Permission DELETE = new Permission(GROUP,"GenericDelete",WRITE);
+ public static final Permission DELETE = new Permission(GROUP,"GenericDelete",null,WRITE);
/**
* Generic configuration access.
*/
- public static final Permission CONFIGURE = new Permission(GROUP,"GenericConfigure",UPDATE);
+ public static final Permission CONFIGURE = new Permission(GROUP,"GenericConfigure",null,UPDATE);
}
diff --git a/core/src/main/java/hudson/slaves/NodeProvisioner.java b/core/src/main/java/hudson/slaves/NodeProvisioner.java
index 62fe2141eea7f9be08edc8043cf16cf5bb48db2d..ea6ee3571ae6ada5d48f39bc454bd104b7f0023d 100644
--- a/core/src/main/java/hudson/slaves/NodeProvisioner.java
+++ b/core/src/main/java/hudson/slaves/NodeProvisioner.java
@@ -33,6 +33,7 @@ import static hudson.model.LoadStatistics.DECAY;
import hudson.model.MultiStageTimeSeries.TimeScale;
import hudson.Extension;
+import java.awt.Color;
import java.util.concurrent.Future;
import java.util.concurrent.ExecutionException;
import java.util.List;
@@ -87,7 +88,8 @@ public class NodeProvisioner {
* This is used to filter out high-frequency components from the planned capacity, so that
* the comparison with other low-frequency only variables won't leave spikes.
*/
- private final MultiStageTimeSeries plannedCapacitiesEMA = new MultiStageTimeSeries(0,DECAY);
+ private final MultiStageTimeSeries plannedCapacitiesEMA =
+ new MultiStageTimeSeries(Messages._NodeProvisioner_EmptyString(),Color.WHITE,0,DECAY);
public NodeProvisioner(Label label, LoadStatistics loadStatistics) {
this.label = label;
diff --git a/core/src/main/java/hudson/slaves/RetentionStrategy.java b/core/src/main/java/hudson/slaves/RetentionStrategy.java
index 6a7dfc1fad054376b15155cc327a8c5ca8effe81..e688230a7f1190aee61b0d3f8fff9dfebbc56dbc 100644
--- a/core/src/main/java/hudson/slaves/RetentionStrategy.java
+++ b/core/src/main/java/hudson/slaves/RetentionStrategy.java
@@ -113,6 +113,7 @@ public abstract class RetentionStrategy implements Describab
c.connect(false);
}
+ @Override
public Descriptor> getDescriptor() {
return DESCRIPTOR;
}
@@ -213,7 +214,7 @@ public abstract class RetentionStrategy implements Describab
// we've been idle for long enough
logger.log(Level.INFO, "Disconnecting computer {0} as it has been idle for {1}",
new Object[]{c.getName(), Util.getTimeSpanString(idleMilliseconds)});
- c.disconnect();
+ c.disconnect(OfflineCause.create(Messages._RetentionStrategy_Demand_OfflineIdle()));
}
}
return 1;
diff --git a/core/src/main/java/hudson/tasks/BuildStepDescriptor.java b/core/src/main/java/hudson/tasks/BuildStepDescriptor.java
index d27da3b7f7ec4f1446cee8eead47d3a704a7c014..7e289d4037ae96923fc72beb5c85ff98e27d1006 100644
--- a/core/src/main/java/hudson/tasks/BuildStepDescriptor.java
+++ b/core/src/main/java/hudson/tasks/BuildStepDescriptor.java
@@ -67,7 +67,7 @@ public abstract class BuildStepDescriptor>
/**
- * Fiters a descriptor for {@link BuildStep}s by using {@link BuildStepDescriptor#isApplicable(Class)}.
+ * Filters a descriptor for {@link BuildStep}s by using {@link BuildStepDescriptor#isApplicable(Class)}.
*/
public static >
List> filter(List> base, Class extends AbstractProject> type) {
diff --git a/core/src/main/resources/hudson/slaves/Messages.properties b/core/src/main/resources/hudson/slaves/Messages.properties
index 69c1826a01667a51b17a54ac9699b1951dbe1179..5bb0d9ae6e553b733f7ce2621815bf9f893e2a8c 100644
--- a/core/src/main/resources/hudson/slaves/Messages.properties
+++ b/core/src/main/resources/hudson/slaves/Messages.properties
@@ -22,12 +22,14 @@
RetentionStrategy.Always.displayName=Keep this slave on-line as much as possible
RetentionStrategy.Demand.displayName=Take this slave on-line when in demand and off-line when idle
+RetentionStrategy.Demand.OfflineIdle=Computer was idle
CommandLauncher.displayName=Launch slave via execution of command on the Master
JNLPLauncher.displayName=Launch slave agents via JNLP
ComputerLauncher.unexpectedError=Unexpected error in launching a slave. This is probably a bug in Hudson
ComputerLauncher.abortedLaunch=Launching slave process aborted.
CommandLauncher.NoLaunchCommand=No launch command specified
DumbSlave.displayName=Dumb Slave
+NodeProvisioner.EmptyString=
SimpleScheduledRetentionStrategy.FinishedUpTime=Computer has finished its scheduled uptime
SimpleScheduledRetentionStrategy.displayName=Take this slave on-line according to a schedule
EnvironmentVariablesNodeProperty.displayName=Environment variables