From 2e68f753129af05fc36da38054bb7cbb76d78b0f Mon Sep 17 00:00:00 2001 From: kohsuke Date: Thu, 24 Sep 2009 18:59:07 +0000 Subject: [PATCH] [HUDSON-4531] extension point without a descriptor is now reported with more information for a better troubleshooting. git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@22098 71c3de6d-444a-0410-be80-ed276b4c234a --- .../src/main/java/hudson/FileSystemProvisioner.java | 2 +- core/src/main/java/hudson/model/Hudson.java | 13 +++++++++++++ core/src/main/java/hudson/model/JobProperty.java | 2 +- .../main/java/hudson/model/ParameterDefinition.java | 2 +- core/src/main/java/hudson/model/Slave.java | 4 +--- core/src/main/java/hudson/model/UserProperty.java | 2 +- core/src/main/java/hudson/model/View.java | 2 +- .../main/java/hudson/node_monitors/NodeMonitor.java | 2 +- core/src/main/java/hudson/scm/CVSSCM.java | 2 +- .../src/main/java/hudson/scm/RepositoryBrowser.java | 2 +- core/src/main/java/hudson/scm/SCM.java | 2 +- .../java/hudson/security/AuthorizationStrategy.java | 2 +- .../main/java/hudson/security/SecurityRealm.java | 2 +- .../main/java/hudson/security/csrf/CrumbIssuer.java | 2 +- core/src/main/java/hudson/slaves/Cloud.java | 2 +- .../main/java/hudson/slaves/ComputerLauncher.java | 2 +- core/src/main/java/hudson/slaves/NodeProperty.java | 2 +- .../main/java/hudson/slaves/RetentionStrategy.java | 2 +- core/src/main/java/hudson/tasks/BuildWrapper.java | 2 +- core/src/main/java/hudson/tasks/Builder.java | 2 +- core/src/main/java/hudson/tasks/Publisher.java | 2 +- .../java/hudson/tasks/junit/TestDataPublisher.java | 2 +- .../main/java/hudson/tools/ToolInstallation.java | 2 +- core/src/main/java/hudson/tools/ToolInstaller.java | 2 +- core/src/main/java/hudson/tools/ToolProperty.java | 2 +- core/src/main/java/hudson/triggers/Trigger.java | 2 +- .../src/main/java/hudson/maven/MavenReporter.java | 2 +- 27 files changed, 39 insertions(+), 28 deletions(-) diff --git a/core/src/main/java/hudson/FileSystemProvisioner.java b/core/src/main/java/hudson/FileSystemProvisioner.java index e37f81acd1..7f12f20af5 100644 --- a/core/src/main/java/hudson/FileSystemProvisioner.java +++ b/core/src/main/java/hudson/FileSystemProvisioner.java @@ -171,7 +171,7 @@ public abstract class FileSystemProvisioner implements ExtensionPoint, Describab public abstract WorkspaceSnapshot snapshot(AbstractBuild build, FilePath ws, TaskListener listener) throws IOException, InterruptedException; public FileSystemProvisionerDescriptor getDescriptor() { - return (FileSystemProvisionerDescriptor) Hudson.getInstance().getDescriptor(getClass()); + return (FileSystemProvisionerDescriptor) Hudson.getInstance().getDescriptorOrDie(getClass()); } /** diff --git a/core/src/main/java/hudson/model/Hudson.java b/core/src/main/java/hudson/model/Hudson.java index 09f8945816..877c95f7a3 100644 --- a/core/src/main/java/hudson/model/Hudson.java +++ b/core/src/main/java/hudson/model/Hudson.java @@ -830,6 +830,19 @@ public final class Hudson extends Node implements ItemGroup, Stapl return null; } + /** + * Works just like {@link #getDescriptor(Class)} but don't take no for an answer. + * + * @throws AssertionError + * If the descriptor is missing. + * @since 1.326 + */ + public Descriptor getDescriptorOrDie(Class type) { + Descriptor d = getDescriptor(type); + if (d==null) throw new AssertionError(type+" is missing its descriptor"); + return d; + } + /** * Gets the {@link Descriptor} instance in the current Hudson by its type. */ diff --git a/core/src/main/java/hudson/model/JobProperty.java b/core/src/main/java/hudson/model/JobProperty.java index 0c696bd97e..78501e027e 100644 --- a/core/src/main/java/hudson/model/JobProperty.java +++ b/core/src/main/java/hudson/model/JobProperty.java @@ -90,7 +90,7 @@ public abstract class JobProperty> implements Describable, Extensi // descriptor must be of the UserPropertyDescriptor type public UserPropertyDescriptor getDescriptor() { - return (UserPropertyDescriptor)Hudson.getInstance().getDescriptor(getClass()); + return (UserPropertyDescriptor)Hudson.getInstance().getDescriptorOrDie(getClass()); } /** diff --git a/core/src/main/java/hudson/model/View.java b/core/src/main/java/hudson/model/View.java index 9df09691ac..c7a01475ad 100644 --- a/core/src/main/java/hudson/model/View.java +++ b/core/src/main/java/hudson/model/View.java @@ -170,7 +170,7 @@ public abstract class View extends AbstractModelObject implements AccessControll } public ViewDescriptor getDescriptor() { - return (ViewDescriptor)Hudson.getInstance().getDescriptor(getClass()); + return (ViewDescriptor)Hudson.getInstance().getDescriptorOrDie(getClass()); } public String getDisplayName() { diff --git a/core/src/main/java/hudson/node_monitors/NodeMonitor.java b/core/src/main/java/hudson/node_monitors/NodeMonitor.java index 76141c1c6b..bf6edbc4f9 100644 --- a/core/src/main/java/hudson/node_monitors/NodeMonitor.java +++ b/core/src/main/java/hudson/node_monitors/NodeMonitor.java @@ -85,7 +85,7 @@ public abstract class NodeMonitor implements ExtensionPoint, Describable getDescriptor() { - return (AbstractNodeMonitorDescriptor)Hudson.getInstance().getDescriptor(getClass()); + return (AbstractNodeMonitorDescriptor)Hudson.getInstance().getDescriptorOrDie(getClass()); } public Object data(Computer c) { diff --git a/core/src/main/java/hudson/scm/CVSSCM.java b/core/src/main/java/hudson/scm/CVSSCM.java index 1d514c3650..d62f414029 100644 --- a/core/src/main/java/hudson/scm/CVSSCM.java +++ b/core/src/main/java/hudson/scm/CVSSCM.java @@ -1558,7 +1558,7 @@ public class CVSSCM extends SCM implements Serializable { } public Descriptor getDescriptor() { - return Hudson.getInstance().getDescriptor(getClass()); + return Hudson.getInstance().getDescriptorOrDie(getClass()); } } diff --git a/core/src/main/java/hudson/scm/RepositoryBrowser.java b/core/src/main/java/hudson/scm/RepositoryBrowser.java index 1dbc57b731..4b5da545ef 100644 --- a/core/src/main/java/hudson/scm/RepositoryBrowser.java +++ b/core/src/main/java/hudson/scm/RepositoryBrowser.java @@ -95,7 +95,7 @@ public abstract class RepositoryBrowser implements } public Descriptor> getDescriptor() { - return Hudson.getInstance().getDescriptor(getClass()); + return Hudson.getInstance().getDescriptorOrDie(getClass()); } /** diff --git a/core/src/main/java/hudson/scm/SCM.java b/core/src/main/java/hudson/scm/SCM.java index 64e8f21376..703f50dc39 100644 --- a/core/src/main/java/hudson/scm/SCM.java +++ b/core/src/main/java/hudson/scm/SCM.java @@ -345,7 +345,7 @@ public abstract class SCM implements Describable, ExtensionPoint { public abstract ChangeLogParser createChangeLogParser(); public SCMDescriptor getDescriptor() { - return (SCMDescriptor)Hudson.getInstance().getDescriptor(getClass()); + return (SCMDescriptor)Hudson.getInstance().getDescriptorOrDie(getClass()); } // diff --git a/core/src/main/java/hudson/security/AuthorizationStrategy.java b/core/src/main/java/hudson/security/AuthorizationStrategy.java index 819ee2f9cd..bdd05ea9fb 100644 --- a/core/src/main/java/hudson/security/AuthorizationStrategy.java +++ b/core/src/main/java/hudson/security/AuthorizationStrategy.java @@ -176,7 +176,7 @@ public abstract class AuthorizationStrategy implements Describable getGroups(); public Descriptor getDescriptor() { - return Hudson.getInstance().getDescriptor(getClass()); + return Hudson.getInstance().getDescriptorOrDie(getClass()); } /** diff --git a/core/src/main/java/hudson/security/SecurityRealm.java b/core/src/main/java/hudson/security/SecurityRealm.java index c60a8a43c7..228a64f9d6 100644 --- a/core/src/main/java/hudson/security/SecurityRealm.java +++ b/core/src/main/java/hudson/security/SecurityRealm.java @@ -150,7 +150,7 @@ public abstract class SecurityRealm implements Describable, Exten * global.jelly. */ public Descriptor getDescriptor() { - return Hudson.getInstance().getDescriptor(getClass()); + return Hudson.getInstance().getDescriptorOrDie(getClass()); } /** diff --git a/core/src/main/java/hudson/security/csrf/CrumbIssuer.java b/core/src/main/java/hudson/security/csrf/CrumbIssuer.java index 53d17ccb83..9d936a26f3 100644 --- a/core/src/main/java/hudson/security/csrf/CrumbIssuer.java +++ b/core/src/main/java/hudson/security/csrf/CrumbIssuer.java @@ -139,7 +139,7 @@ public abstract class CrumbIssuer implements Describable, Extension * Access global configuration for the crumb issuer. */ public CrumbIssuerDescriptor getDescriptor() { - return (CrumbIssuerDescriptor) Hudson.getInstance().getDescriptor(getClass()); + return (CrumbIssuerDescriptor) Hudson.getInstance().getDescriptorOrDie(getClass()); } /** diff --git a/core/src/main/java/hudson/slaves/Cloud.java b/core/src/main/java/hudson/slaves/Cloud.java index d0d1465932..0276e19b7f 100644 --- a/core/src/main/java/hudson/slaves/Cloud.java +++ b/core/src/main/java/hudson/slaves/Cloud.java @@ -121,7 +121,7 @@ public abstract class Cloud extends AbstractModelObject implements ExtensionPoin public abstract boolean canProvision(Label label); public Descriptor getDescriptor() { - return Hudson.getInstance().getDescriptor(getClass()); + return Hudson.getInstance().getDescriptorOrDie(getClass()); } /** diff --git a/core/src/main/java/hudson/slaves/ComputerLauncher.java b/core/src/main/java/hudson/slaves/ComputerLauncher.java index be522cbc7b..59c5b1867f 100644 --- a/core/src/main/java/hudson/slaves/ComputerLauncher.java +++ b/core/src/main/java/hudson/slaves/ComputerLauncher.java @@ -133,7 +133,7 @@ public abstract class ComputerLauncher implements Describable, } public Descriptor getDescriptor() { - return (Descriptor)Hudson.getInstance().getDescriptor(getClass()); + return (Descriptor)Hudson.getInstance().getDescriptorOrDie(getClass()); } /** diff --git a/core/src/main/java/hudson/slaves/NodeProperty.java b/core/src/main/java/hudson/slaves/NodeProperty.java index 9eaa2c4fb9..b74f42b3be 100644 --- a/core/src/main/java/hudson/slaves/NodeProperty.java +++ b/core/src/main/java/hudson/slaves/NodeProperty.java @@ -66,7 +66,7 @@ public abstract class NodeProperty implements Describable implements Describab } public Descriptor> getDescriptor() { - return Hudson.getInstance().getDescriptor(getClass()); + return Hudson.getInstance().getDescriptorOrDie(getClass()); } /** diff --git a/core/src/main/java/hudson/tasks/BuildWrapper.java b/core/src/main/java/hudson/tasks/BuildWrapper.java index d00c434421..a37e370dee 100644 --- a/core/src/main/java/hudson/tasks/BuildWrapper.java +++ b/core/src/main/java/hudson/tasks/BuildWrapper.java @@ -191,7 +191,7 @@ public abstract class BuildWrapper implements ExtensionPoint, Describable getDescriptor() { - return (Descriptor) Hudson.getInstance().getDescriptor(getClass()); + return (Descriptor) Hudson.getInstance().getDescriptorOrDie(getClass()); } diff --git a/core/src/main/java/hudson/tasks/Builder.java b/core/src/main/java/hudson/tasks/Builder.java index 752fbbc2e9..dd783192cc 100644 --- a/core/src/main/java/hudson/tasks/Builder.java +++ b/core/src/main/java/hudson/tasks/Builder.java @@ -72,7 +72,7 @@ public abstract class Builder extends BuildStepCompatibilityLayer implements Bui } public Descriptor getDescriptor() { - return Hudson.getInstance().getDescriptor(getClass()); + return Hudson.getInstance().getDescriptorOrDie(getClass()); } /** diff --git a/core/src/main/java/hudson/tasks/Publisher.java b/core/src/main/java/hudson/tasks/Publisher.java index 467cf68f0c..bfe0787937 100644 --- a/core/src/main/java/hudson/tasks/Publisher.java +++ b/core/src/main/java/hudson/tasks/Publisher.java @@ -119,7 +119,7 @@ public abstract class Publisher extends BuildStepCompatibilityLayer implements B } public Descriptor getDescriptor() { - return Hudson.getInstance().getDescriptor(getClass()); + return Hudson.getInstance().getDescriptorOrDie(getClass()); } /** diff --git a/core/src/main/java/hudson/tasks/junit/TestDataPublisher.java b/core/src/main/java/hudson/tasks/junit/TestDataPublisher.java index 46d678d8f9..4f09291112 100644 --- a/core/src/main/java/hudson/tasks/junit/TestDataPublisher.java +++ b/core/src/main/java/hudson/tasks/junit/TestDataPublisher.java @@ -60,7 +60,7 @@ public abstract class TestDataPublisher implements Describable getDescriptor() { - return Hudson.getInstance().getDescriptor(getClass()); + return Hudson.getInstance().getDescriptorOrDie(getClass()); } public static DescriptorExtensionList> all() { diff --git a/core/src/main/java/hudson/tools/ToolInstallation.java b/core/src/main/java/hudson/tools/ToolInstallation.java index 7dac634269..6f2fadc99c 100644 --- a/core/src/main/java/hudson/tools/ToolInstallation.java +++ b/core/src/main/java/hudson/tools/ToolInstallation.java @@ -133,7 +133,7 @@ public abstract class ToolInstallation implements Serializable, Describable getDescriptor() { - return (ToolDescriptor) Hudson.getInstance().getDescriptor(getClass()); + return (ToolDescriptor) Hudson.getInstance().getDescriptorOrDie(getClass()); } /** diff --git a/core/src/main/java/hudson/tools/ToolInstaller.java b/core/src/main/java/hudson/tools/ToolInstaller.java index 56ccad962f..45f0fd7895 100644 --- a/core/src/main/java/hudson/tools/ToolInstaller.java +++ b/core/src/main/java/hudson/tools/ToolInstaller.java @@ -113,6 +113,6 @@ public abstract class ToolInstaller implements Describable, Exten } public ToolInstallerDescriptor getDescriptor() { - return (ToolInstallerDescriptor) Hudson.getInstance().getDescriptor(getClass()); + return (ToolInstallerDescriptor) Hudson.getInstance().getDescriptorOrDie(getClass()); } } diff --git a/core/src/main/java/hudson/tools/ToolProperty.java b/core/src/main/java/hudson/tools/ToolProperty.java index 9faa4843f7..b26bc8facd 100644 --- a/core/src/main/java/hudson/tools/ToolProperty.java +++ b/core/src/main/java/hudson/tools/ToolProperty.java @@ -56,7 +56,7 @@ public abstract class ToolProperty implements Descri } public ToolPropertyDescriptor getDescriptor() { - return (ToolPropertyDescriptor) Hudson.getInstance().getDescriptor(getClass()); + return (ToolPropertyDescriptor) Hudson.getInstance().getDescriptorOrDie(getClass()); } /** diff --git a/core/src/main/java/hudson/triggers/Trigger.java b/core/src/main/java/hudson/triggers/Trigger.java index 5851d1547e..912c95e24e 100644 --- a/core/src/main/java/hudson/triggers/Trigger.java +++ b/core/src/main/java/hudson/triggers/Trigger.java @@ -110,7 +110,7 @@ public abstract class Trigger implements Describable> } public TriggerDescriptor getDescriptor() { - return (TriggerDescriptor)Hudson.getInstance().getDescriptor(getClass()); + return (TriggerDescriptor)Hudson.getInstance().getDescriptorOrDie(getClass()); } diff --git a/maven-plugin/src/main/java/hudson/maven/MavenReporter.java b/maven-plugin/src/main/java/hudson/maven/MavenReporter.java index 4ef03d8bf0..99726c5714 100644 --- a/maven-plugin/src/main/java/hudson/maven/MavenReporter.java +++ b/maven-plugin/src/main/java/hudson/maven/MavenReporter.java @@ -282,6 +282,6 @@ public abstract class MavenReporter implements Describable, Exten } public MavenReporterDescriptor getDescriptor() { - return (MavenReporterDescriptor)Hudson.getInstance().getDescriptor(getClass()); + return (MavenReporterDescriptor)Hudson.getInstance().getDescriptorOrDie(getClass()); } } -- GitLab