From 30ac9eb2c8846f71226cf63bd6d1be381641f680 Mon Sep 17 00:00:00 2001 From: Andrew Ferguson Date: Wed, 20 Jun 2007 16:59:31 +0000 Subject: [PATCH] fix cyclic construction problem exposed by improved error handling --- .../core/tests/templateengine/TestTemplateEngine.java | 2 +- .../eclipse/cdt/core/templateengine/TemplateCore.java | 2 +- .../cdt/core/templateengine/TemplateEngine.java | 11 +++++------ .../cdt/core/templateengine/TemplateEngineHelper.java | 2 +- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/core/org.eclipse.cdt.core.tests/templateengine/org/eclipse/cdt/core/tests/templateengine/TestTemplateEngine.java b/core/org.eclipse.cdt.core.tests/templateengine/org/eclipse/cdt/core/tests/templateengine/TestTemplateEngine.java index ce862462f88..7da4cd30b82 100644 --- a/core/org.eclipse.cdt.core.tests/templateengine/org/eclipse/cdt/core/tests/templateengine/TestTemplateEngine.java +++ b/core/org.eclipse.cdt.core.tests/templateengine/org/eclipse/cdt/core/tests/templateengine/TestTemplateEngine.java @@ -50,7 +50,7 @@ public class TestTemplateEngine extends BaseTestCase { * */ public void testSharedDefaults(){ - assertNotNull(templateEngine.getSharedDefaults()); + assertNotNull(TemplateEngine.getSharedDefaults()); } /** diff --git a/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/TemplateCore.java b/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/TemplateCore.java index 96f289ed3ce..6b95af1df96 100644 --- a/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/TemplateCore.java +++ b/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/TemplateCore.java @@ -80,7 +80,7 @@ public class TemplateCore { templateDescriptor = new TemplateDescriptor(descriptorURL, templateInfo.getPluginId()); valueStore = new ValueStore/**/(this); valueStore.putAll(templateDescriptor.getTemplateDefaults(templateDescriptor.getRootElement())); - valueStore.putAll(TemplateEngine.getDefault().getSharedDefaults()); + valueStore.putAll(TemplateEngine.getSharedDefaults()); valueStore.put("projectType", templateInfo.getProjectType()); //$NON-NLS-1$ processHandler = new TemplateProcessHandler(this); diff --git a/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/TemplateEngine.java b/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/TemplateEngine.java index 8e5c70c90f7..f73a9af070a 100644 --- a/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/TemplateEngine.java +++ b/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/TemplateEngine.java @@ -48,11 +48,6 @@ public class TemplateEngine { */ private static TemplateEngine TEMPLATE_ENGINE; - static { - TEMPLATE_ENGINE = new TemplateEngine(); - TEMPLATE_ENGINE.initializeTemplateInfoMap(); - } - /** * This is a Map . */ @@ -63,6 +58,7 @@ public class TemplateEngine { */ private TemplateEngine() { templateInfoMap = new HashMap/*>*/(); + initializeTemplateInfoMap(); } /** @@ -159,7 +155,7 @@ public class TemplateEngine { * * @return */ - public Map/**/ getSharedDefaults() { + public static Map/**/ getSharedDefaults() { return SharedDefaults.getInstance().getSharedDefaultsMap(); } @@ -196,6 +192,9 @@ public class TemplateEngine { * @since 4.0 */ public static TemplateEngine getDefault() { + if(TEMPLATE_ENGINE==null) { + TEMPLATE_ENGINE = new TemplateEngine(); + } return TEMPLATE_ENGINE; } diff --git a/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/TemplateEngineHelper.java b/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/TemplateEngineHelper.java index 767125872ce..a5cca0df054 100644 --- a/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/TemplateEngineHelper.java +++ b/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/TemplateEngineHelper.java @@ -220,7 +220,7 @@ public class TemplateEngineHelper { } else { path = path.substring(0, slash + 1) + resourcePath; } - URL entry = FileLocator.find(Platform.getBundle(templateInfo.getPluginId()), new Path(path), null);; + URL entry = FileLocator.find(Platform.getBundle(templateInfo.getPluginId()), new Path(path), null); if (entry == null) { return null; }