[139455] Headless startup problems
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UIEnablementIdentifier.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UIEnablementIdentifier.java
index 675dc55..af51b65 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UIEnablementIdentifier.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UIEnablementIdentifier.java
@@ -42,8 +42,11 @@
*/
public UIEnablementIdentifier(String id, IProject project) {
super(id, project);
- activityIdentifier = getActivityManager().getIdentifier(id);
- activityIdentifier.addIdentifierListener(this);
+ IActivityManager manager = getActivityManager();
+ if (manager != null) {
+ activityIdentifier = getActivityManager().getIdentifier(id);
+ activityIdentifier.addIdentifierListener(this);
+ }
}
/*
@@ -67,7 +70,23 @@
* @see org.eclispe.wst.common.frameworks.internal.enablement.EnablementIdentifier#getNewEnabled()
*/
protected boolean getNewEnabled() {
- return activityIdentifier.isEnabled() && super.getNewEnabled();
+ IIdentifier identifier = getActivityIdentifier();
+ if (identifier != null)
+ return identifier.isEnabled() && super.getNewEnabled();
+ else
+ return false;
+ }
+
+
+ protected IIdentifier getActivityIdentifier() {
+ if (activityIdentifier == null){
+ IActivityManager manager = getActivityManager();
+ if (manager != null) {
+ activityIdentifier = getActivityManager().getIdentifier(getId());
+ activityIdentifier.addIdentifierListener(this);
+ }
+ }
+ return activityIdentifier;
}
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UIEnablementManager.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UIEnablementManager.java
index 44014e2..b8de6a4 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UIEnablementManager.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/ui/UIEnablementManager.java
@@ -17,6 +17,7 @@
package org.eclipse.wst.common.frameworks.internal.ui;
import org.eclipse.core.resources.IProject;
+import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.activities.IActivityManager;
import org.eclipse.ui.activities.IWorkbenchActivitySupport;
@@ -35,7 +36,10 @@
}
protected IActivityManager getActivityManager() {
- return getActivitySupport().getActivityManager();
+ if (getActivitySupport() != null)
+ return getActivitySupport().getActivityManager();
+ else
+ return null;
}
/**
@@ -43,10 +47,20 @@
*/
protected IWorkbenchActivitySupport getActivitySupport() {
if (activitySupport == null)
- activitySupport = PlatformUI.getWorkbench().getActivitySupport();
+ activitySupport = initActivitySupport();
return activitySupport;
}
+ private IWorkbenchActivitySupport initActivitySupport() {
+ IWorkbench work = null;
+ try {
+ work = PlatformUI.getWorkbench();
+ } catch (IllegalStateException ex) {
+ //Not initialized yet
+ }
+ return (work != null) ? work.getActivitySupport() : null;
+ }
+
/*
* (non-Javadoc)
*