Bug 519269 Add job class name to NPE message
Helps to identify faulty InternalJob implementations that return null
status.
Change-Id: I438cbd731639f7cd9ba0eaab4128412580470e73
Signed-off-by: Karsten Thoms <karsten.thoms@itemis.de>
diff --git a/bundles/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs/JobMessages.java b/bundles/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs/JobMessages.java
index 48522c8..7fb1c53 100644
--- a/bundles/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs/JobMessages.java
+++ b/bundles/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs/JobMessages.java
@@ -24,9 +24,11 @@
public static String jobs_internalError;
public static String jobs_waitFamSub;
public static String jobs_waitFamSubOne;
+ public static String jobs_returnNoStatus;
// metadata
public static String meta_pluginProblems;
+
static {
// load message values from bundle file
reloadMessages();
diff --git a/bundles/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs/Worker.java b/bundles/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs/Worker.java
index 6868254..6e13c0b 100644
--- a/bundles/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs/Worker.java
+++ b/bundles/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs/Worker.java
@@ -71,8 +71,10 @@
//clear interrupted state for this thread
Thread.interrupted();
//result must not be null
- if (result == null)
- result = handleException(currentJob, new NullPointerException());
+ if (result == null) {
+ String message = NLS.bind(JobMessages.jobs_returnNoStatus, currentJob.getClass().getName());
+ result = handleException(currentJob, new NullPointerException(message));
+ }
pool.endJob(currentJob, result);
currentJob = null;
//reset thread priority in case job changed it
diff --git a/bundles/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs/messages.properties b/bundles/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs/messages.properties
index 8451b40..3ce2b43 100644
--- a/bundles/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs/messages.properties
+++ b/bundles/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs/messages.properties
@@ -16,6 +16,7 @@
jobs_internalError=An internal error occurred during: \"{0}\".
jobs_waitFamSub={0} operations remaining.
jobs_waitFamSubOne={0} operation remaining.
+jobs_returnNoStatus=Job of type {0} returned no status.
### metadata
meta_pluginProblems = Problems occurred when invoking code from plug-in: \"{0}\".