Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon McDuff2009-03-31 20:35:40 +0000
committerSimon McDuff2009-03-31 20:35:40 +0000
commitd617c0245143eed220be3233e725e5a901fca969 (patch)
tree258c4054ea69b3aaa2424fa81693485fdc14993b /plugins/org.eclipse.net4j.util.ui
parent72c9ac1e55020b5a3bf7b657ad91630151456661 (diff)
downloadcdo-d617c0245143eed220be3233e725e5a901fca969.tar.gz
cdo-d617c0245143eed220be3233e725e5a901fca969.tar.xz
cdo-d617c0245143eed220be3233e725e5a901fca969.zip
[270139] NPE when attempting to lock an already locked object from a second client
https://bugs.eclipse.org/bugs/show_bug.cgi?id=270139
Diffstat (limited to 'plugins/org.eclipse.net4j.util.ui')
-rw-r--r--plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/actions/LongRunningAction.java23
1 files changed, 22 insertions, 1 deletions
diff --git a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/actions/LongRunningAction.java b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/actions/LongRunningAction.java
index 8f4c88b4f3..63996a2b30 100644
--- a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/actions/LongRunningAction.java
+++ b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/actions/LongRunningAction.java
@@ -18,6 +18,7 @@ import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
@@ -127,9 +128,29 @@ public abstract class LongRunningAction extends SafeAction
return PlatformUI.getWorkbench().getActiveWorkbenchWindow();
}
+ /**
+ * @since 2.0
+ */
+ public Display getDisplay()
+ {
+ IWorkbenchWindow workbenchWindow = getWorkbenchWindow();
+ if (workbenchWindow != null)
+ {
+ return workbenchWindow.getShell().getDisplay();
+ }
+
+ return PlatformUI.getWorkbench().getDisplay();
+ }
+
public Shell getShell()
{
- return getWorkbenchWindow().getShell();
+ IWorkbenchWindow workbenchWindow = getWorkbenchWindow();
+ if (workbenchWindow != null)
+ {
+ return workbenchWindow.getShell();
+ }
+
+ return new Shell();
}
protected final int getTotalWork()

Back to the top