getDescriptor() {
return Jenkins.getInstance().getDescriptorOrDie(getClass());
}
diff --git a/core/src/main/java/hudson/model/AbstractProject.java b/core/src/main/java/hudson/model/AbstractProject.java
index 7e75d391aa..f2fc2f5660 100644
--- a/core/src/main/java/hudson/model/AbstractProject.java
+++ b/core/src/main/java/hudson/model/AbstractProject.java
@@ -1090,6 +1090,7 @@ public abstract class AbstractProject,R extends A
* or if the blockBuildWhenUpstreamBuilding option is true and an upstream
* project is building, but derived classes can also check other conditions.
*/
+ @Override
public boolean isBuildBlocked() {
return getCauseOfBlockage()!=null;
}
diff --git a/core/src/main/java/hudson/model/Computer.java b/core/src/main/java/hudson/model/Computer.java
index a3ddb20720..547e51c753 100644
--- a/core/src/main/java/hudson/model/Computer.java
+++ b/core/src/main/java/hudson/model/Computer.java
@@ -587,6 +587,7 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces
/**
* {@inheritDoc}
*/
+ @Override
public void taskAccepted(Executor executor, Queue.Task task) {
// dummy implementation
}
@@ -594,6 +595,7 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces
/**
* {@inheritDoc}
*/
+ @Override
public void taskCompleted(Executor executor, Queue.Task task, long durationMS) {
// dummy implementation
}
@@ -601,6 +603,7 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces
/**
* {@inheritDoc}
*/
+ @Override
public void taskCompletedWithProblems(Executor executor, Queue.Task task, long durationMS, Throwable problems) {
// dummy implementation
}
diff --git a/core/src/main/java/hudson/model/HealthReport.java b/core/src/main/java/hudson/model/HealthReport.java
index bf8c776d77..0217a211ab 100644
--- a/core/src/main/java/hudson/model/HealthReport.java
+++ b/core/src/main/java/hudson/model/HealthReport.java
@@ -325,6 +325,7 @@ public class HealthReport implements Serializable, Comparable {
/**
* {@inheritDoc}
*/
+ @Override
public int compareTo(HealthReport o) {
return (this.score < o.score ? -1 : (this.score == o.score ? 0 : 1));
}
diff --git a/core/src/main/java/hudson/model/JDK.java b/core/src/main/java/hudson/model/JDK.java
index a805063940..ca9bf0aac6 100644
--- a/core/src/main/java/hudson/model/JDK.java
+++ b/core/src/main/java/hudson/model/JDK.java
@@ -67,7 +67,7 @@ public final class JDK extends ToolInstallation implements NodeSpecific, En
// DEFAULT_NAME took this value prior to 1.598.
return true;
}
- return DEFAULT_NAME.equals(name);
+ return DEFAULT_NAME.equals(name) || name == null;
}
/**
diff --git a/core/src/main/java/hudson/model/JobProperty.java b/core/src/main/java/hudson/model/JobProperty.java
index b5d505da01..4de88173d8 100644
--- a/core/src/main/java/hudson/model/JobProperty.java
+++ b/core/src/main/java/hudson/model/JobProperty.java
@@ -99,6 +99,7 @@ public abstract class JobProperty> implements ReconfigurableD
/**
* {@inheritDoc}
*/
+ @Override
public JobPropertyDescriptor getDescriptor() {
return (JobPropertyDescriptor) Jenkins.getInstance().getDescriptorOrDie(getClass());
}
@@ -153,6 +154,7 @@ public abstract class JobProperty> implements ReconfigurableD
*
* Invoked after {@link Publisher}s have run.
*/
+ @Override
public boolean perform(AbstractBuild,?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException {
return true;
}
diff --git a/core/src/main/java/hudson/model/ManagementLink.java b/core/src/main/java/hudson/model/ManagementLink.java
index ba304a402d..dca459ca70 100644
--- a/core/src/main/java/hudson/model/ManagementLink.java
+++ b/core/src/main/java/hudson/model/ManagementLink.java
@@ -79,6 +79,7 @@ public abstract class ManagementLink implements ExtensionPoint, Action {
* In case of {@link ManagementLink}, this value is put straight into the href attribute,
* so relative paths are interpreted against the root {@link Jenkins} object.
*/
+ @Override
public abstract String getUrlName();
/**
diff --git a/core/src/main/java/hudson/model/ParameterDefinition.java b/core/src/main/java/hudson/model/ParameterDefinition.java
index 63438fbf81..20250924d9 100644
--- a/core/src/main/java/hudson/model/ParameterDefinition.java
+++ b/core/src/main/java/hudson/model/ParameterDefinition.java
@@ -155,6 +155,7 @@ public abstract class ParameterDefinition implements
/**
* {@inheritDoc}
*/
+ @Override
public ParameterDescriptor getDescriptor() {
return (ParameterDescriptor) Jenkins.getInstance().getDescriptorOrDie(getClass());
}
diff --git a/core/src/main/java/hudson/security/SecurityRealm.java b/core/src/main/java/hudson/security/SecurityRealm.java
index 0621d4a440..577f7f60f5 100644
--- a/core/src/main/java/hudson/security/SecurityRealm.java
+++ b/core/src/main/java/hudson/security/SecurityRealm.java
@@ -202,6 +202,7 @@ public abstract class SecurityRealm extends AbstractDescribableImplconfig.jelly and never with
* global.jelly.
*/
+ @Override
public Descriptor getDescriptor() {
return super.getDescriptor();
}
diff --git a/core/src/main/java/hudson/security/csrf/CrumbFilter.java b/core/src/main/java/hudson/security/csrf/CrumbFilter.java
index 615dd7f376..9cecfa5daa 100644
--- a/core/src/main/java/hudson/security/csrf/CrumbFilter.java
+++ b/core/src/main/java/hudson/security/csrf/CrumbFilter.java
@@ -104,6 +104,7 @@ public class CrumbFilter implements Filter {
/**
* {@inheritDoc}
*/
+ @Override
public void destroy() {
}
diff --git a/core/src/main/java/hudson/slaves/ComputerRetentionWork.java b/core/src/main/java/hudson/slaves/ComputerRetentionWork.java
index 1a1ad382e4..7dbfb0de96 100644
--- a/core/src/main/java/hudson/slaves/ComputerRetentionWork.java
+++ b/core/src/main/java/hudson/slaves/ComputerRetentionWork.java
@@ -55,6 +55,7 @@ public class ComputerRetentionWork extends PeriodicWork {
* {@inheritDoc}
*/
@SuppressWarnings("unchecked")
+ @Override
protected void doRun() {
final long startRun = System.currentTimeMillis();
for (final Computer c : Jenkins.getInstance().getComputers()) {
diff --git a/core/src/main/java/hudson/tasks/BuildStepCompatibilityLayer.java b/core/src/main/java/hudson/tasks/BuildStepCompatibilityLayer.java
index 4f2db842a8..fb5df2daad 100644
--- a/core/src/main/java/hudson/tasks/BuildStepCompatibilityLayer.java
+++ b/core/src/main/java/hudson/tasks/BuildStepCompatibilityLayer.java
@@ -65,6 +65,7 @@ public abstract class BuildStepCompatibilityLayer implements BuildStep {
* @inheritDoc
* @return Delegates to {@link SimpleBuildStep#perform(Run, FilePath, Launcher, TaskListener)} if possible, always returning true or throwing an error.
*/
+ @Override
public boolean perform(AbstractBuild,?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException {
if (this instanceof SimpleBuildStep) {
// delegate to the overloaded version defined in SimpleBuildStep
diff --git a/core/src/main/java/jenkins/model/AssetManager.java b/core/src/main/java/jenkins/model/AssetManager.java
deleted file mode 100644
index 94748d5205..0000000000
--- a/core/src/main/java/jenkins/model/AssetManager.java
+++ /dev/null
@@ -1,127 +0,0 @@
-package jenkins.model;
-
-import hudson.Extension;
-import hudson.Plugin;
-import hudson.model.UnprotectedRootAction;
-import hudson.util.TimeUnit2;
-import org.kohsuke.stapler.StaplerRequest;
-import org.kohsuke.stapler.StaplerResponse;
-
-import javax.inject.Inject;
-import javax.servlet.ServletException;
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.net.URL;
-import java.util.Enumeration;
-
-/**
- * @author Kohsuke Kawaguchi
- */
-@Extension
-public class AssetManager implements UnprotectedRootAction {
- @Inject
- Jenkins jenkins;
-
- // not shown in the UI
- @Override
- public String getIconFileName() {
- return null;
- }
-
- @Override
- public String getDisplayName() {
- return null;
- }
-
- @Override
- public String getUrlName() {
- return "assets";
- }
-
- /**
- * Binds the plugin asset space to the URL space.
- */
- public AssetSpace getPlugin(String shortName) {
- Plugin p = jenkins.getPlugin(shortName);
- if (p==null) return null;
- return new AssetSpace(p.getWrapper().classLoader);
- }
-
- /**
- * Binds the core asset space to the URL space.
- */
- public AssetSpace getCore() {
- return new AssetSpace(Jenkins.class.getClassLoader());
- }
-
- /**
- * Represents assets that belong to one classloader, such as a plugin or core.
- */
- final class AssetSpace {
- private final ClassLoader cl;
-
- private AssetSpace(ClassLoader cl) {
- this.cl = cl;
- }
-
- /**
- * Exposes assets in the classloader over HTTP.
- */
- public void doDynamic(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException {
- String path = req.getRestOfPath();
-
- // Stapler routes requests like the "/static/.../foo/bar/zot" to be treated like "/foo/bar/zot"
- // and this is used to serve long expiration header, by using Jenkins.VERSION_HASH as "..."
- // to create unique URLs. Recognize that and set a long expiration header.
- String requestPath = req.getRequestURI().substring(req.getContextPath().length());
- boolean staticLink = requestPath.startsWith("/static/");
-
- long expires = staticLink ? TimeUnit2.DAYS.toMillis(365) : -1;
-
- // use serveLocalizedFile to support automatic locale selection
- rsp.serveLocalizedFile(req, findResource(path), expires);
- }
-
- /**
- * Locates the asset from the classloader.
- *
- *
- * To allow plugins to bring its own assets without worrying about colliding with the assets in core,
- * look for child classloader first. But to support plugins that get split, if the child classloader
- * doesn't find it, fall back to the parent classloader.
- */
- private URL findResource(String path) throws IOException {
- try {
- if (path.contains("..")) // crude avoidance of directory traversal attack
- throw new IllegalArgumentException(path);
-
- String name = "assets/" + path;
-
- URL url = (URL) $findResource.invoke(cl, name);
- if (url==null) {
- // pick the last one, which is the one closest to the leaf of the classloader tree.
- Enumeration e = cl.getResources(name);
- while (e.hasMoreElements()) {
- url = e.nextElement();
- }
- }
- return url;
- } catch (InvocationTargetException|IllegalAccessException e) {
- throw new Error(e);
- }
- }
- }
-
- private static final Method $findResource = init();
-
- private static Method init() {
- try {
- Method m = ClassLoader.class.getDeclaredMethod("findResource", String.class);
- m.setAccessible(true);
- return m;
- } catch (NoSuchMethodException e) {
- throw (Error)new NoSuchMethodError().initCause(e);
- }
- }
-}
diff --git a/core/src/main/java/jenkins/model/IdStrategy.java b/core/src/main/java/jenkins/model/IdStrategy.java
index 8ccf691898..b9413cafbc 100644
--- a/core/src/main/java/jenkins/model/IdStrategy.java
+++ b/core/src/main/java/jenkins/model/IdStrategy.java
@@ -161,6 +161,7 @@ public abstract class IdStrategy extends AbstractDescribableImpl imp
/**
* {@inheritDoc}
*/
+ @Override
@Nonnull
public String keyFor(@Nonnull String id) {
return id.toLowerCase(Locale.ENGLISH);
@@ -288,6 +289,7 @@ public abstract class IdStrategy extends AbstractDescribableImpl imp
/**
* {@inheritDoc}
*/
+ @Override
@Nonnull
public String keyFor(@Nonnull String id) {
return id;
@@ -348,6 +350,7 @@ public abstract class IdStrategy extends AbstractDescribableImpl imp
/**
* {@inheritDoc}
*/
+ @Override
@Nonnull
public String keyFor(@Nonnull String id) {
int index = id.lastIndexOf('@'); // The @ can be used in local-part if quoted correctly
diff --git a/core/src/test/java/jenkins/model/JDKNameTest.java b/core/src/test/java/jenkins/model/JDKNameTest.java
index f3e8502f51..491689aaef 100644
--- a/core/src/test/java/jenkins/model/JDKNameTest.java
+++ b/core/src/test/java/jenkins/model/JDKNameTest.java
@@ -36,8 +36,8 @@ import org.powermock.modules.junit4.PowerMockRunner;
@RunWith(PowerMockRunner.class)
public class JDKNameTest {
@Test
- public void nullIsNotDefaultName() {
- assertThat(JDK.isDefaultName(null), is(false));
+ public void nullIsDefaultName() {
+ assertThat(JDK.isDefaultName(null), is(true));
}
@Test