Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcrogers2010-04-23 15:30:01 +0000
committercrogers2010-04-23 15:30:01 +0000
commit5baab7801db557095768c216f12695d143361bff (patch)
tree6ab5e1be9fcc38a353260c326cf00ec50b1993de
parent7e95d318c35fbc148354460261461260a0cb6421 (diff)
downloadwebtools.jsf-5baab7801db557095768c216f12695d143361bff.tar.gz
webtools.jsf-5baab7801db557095768c216f12695d143361bff.tar.xz
webtools.jsf-5baab7801db557095768c216f12695d143361bff.zip
[Bug 310169] - Null JSFAppConfigManager instance causes validating EL failure
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/jsfappconfig/internal/JSFAppConfigManagerFactory.java60
1 files changed, 7 insertions, 53 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/jsfappconfig/internal/JSFAppConfigManagerFactory.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/jsfappconfig/internal/JSFAppConfigManagerFactory.java
index 447bde1cb..401dc484a 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/jsfappconfig/internal/JSFAppConfigManagerFactory.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/jsfappconfig/internal/JSFAppConfigManagerFactory.java
@@ -1,15 +1,7 @@
package org.eclipse.jst.jsf.core.jsfappconfig.internal;
import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jst.jsf.common.internal.resource.ResourceSingletonObjectManager;
import org.eclipse.jst.jsf.common.internal.strategy.AbstractTestableExtensibleDefaultProviderSelectionStrategy;
import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
@@ -25,7 +17,6 @@ public class JSFAppConfigManagerFactory
ResourceSingletonObjectManager<IJSFAppConfigManager, IProject>{
private static JSFAppConfigManagerFactory INSTANCE;
- private static final Object LOCK = new Object();
//private constructor
private JSFAppConfigManagerFactory(final IProject project) {
@@ -40,53 +31,16 @@ public class JSFAppConfigManagerFactory
public static final QualifiedName TESTABLE_FACTORY_SESSION_KEY = new QualifiedName(JSFCorePlugin.PLUGIN_ID, "JSFAppConfigManagerFactoryInstance"); //$NON-NLS-1$
/**
- * Note: to avoid possible deadlocks during the construction and
- * initialization of an instance, this method runs with a project
- * scheduling rule before trying to synchronize.
- *
* @param project
* @return IJSFAppConfigManager
*/
- public static IJSFAppConfigManager getJSFAppConfigManagerInstance(final IProject project) {
- final IJSFAppConfigManager jsfAppConfigMgr[] = {null};
- IProgressMonitor monitor = new NullProgressMonitor();
-
- try {
- // to avoid a possible deadlock issue, ensure there's a
- // scheduling rule (at least for the project) applied
- // before synchronizing to create and initialize the
- // actual IJSFAppConfigManager instance.
- IWorkspaceRunnable runnable= new IWorkspaceRunnable() {
- public void run(IProgressMonitor pm) throws CoreException {
- synchronized (LOCK) {
- try {
- jsfAppConfigMgr[0] = getJSFAppConfigManagerFactoryInstance(project).getInstance(project);
- } catch (ManagedObjectException e) {
- JSFCorePlugin.log(e, "Cannot create IJSFAppConfigManager for " + project.getName() + " (1)"); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- }
- };
-
- ISchedulingRule currentRule = Job.getJobManager().currentRule();
- if (currentRule != null) {
- if (currentRule.contains(project)) {
- runnable.run(monitor);
- return jsfAppConfigMgr[0];
- } else if (currentRule.isConflicting(project)) {
- // we can't expand an existing rule, return null
- return null;
- }
- }
-
- IWorkspace workspace = ResourcesPlugin.getWorkspace();
- workspace.run(runnable, project, IWorkspace.AVOID_UPDATE, monitor);
- } catch(CoreException ce) {
- //log error
- JSFCorePlugin.log(ce, "Cannot create IJSFAppConfigManager for " + project.getName() + " (1)"); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- return jsfAppConfigMgr[0];
+ public synchronized static IJSFAppConfigManager getJSFAppConfigManagerInstance(final IProject project) {
+ try {
+ return getJSFAppConfigManagerFactoryInstance(project).getInstance(project);
+ } catch (ManagedObjectException e) {
+ JSFCorePlugin.log(e, "Cannot create IJSFAppConfigManager for "+project.getName()+ " (1)"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ return null;
}
private static JSFAppConfigManagerFactory getJSFAppConfigManagerFactoryInstance(final IProject project) {

Back to the top