diff options
author | Simon McDuff | 2009-03-31 20:35:40 +0000 |
---|---|---|
committer | Simon McDuff | 2009-03-31 20:35:40 +0000 |
commit | d617c0245143eed220be3233e725e5a901fca969 (patch) | |
tree | 258c4054ea69b3aaa2424fa81693485fdc14993b /plugins/org.eclipse.net4j.util.ui | |
parent | 72c9ac1e55020b5a3bf7b657ad91630151456661 (diff) | |
download | cdo-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.java | 23 |
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() |