[270172] ensure IFacetedProjectWorkingCopy is disposed.
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/FacetProjectCreationDataModelProvider.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/FacetProjectCreationDataModelProvider.java
index d8cb5d6..02d70d5 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/FacetProjectCreationDataModelProvider.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/FacetProjectCreationDataModelProvider.java
@@ -80,10 +80,11 @@
return names;
}
+ private final IFacetedProjectWorkingCopy fpjwc = FacetedProjectFramework.createNewProject();
+
public void init() {
super.init();
- final IFacetedProjectWorkingCopy fpjwc = FacetedProjectFramework.createNewProject();
model.setProperty(FACETED_PROJECT_WORKING_COPY, fpjwc);
fpjwc.addListener
@@ -146,6 +147,14 @@
model.addNestedModel(NESTED_PROJECT_DM, projectDataModel);
}
+ @Override
+ public void dispose() {
+ if(fpjwc != null){
+ fpjwc.dispose();
+ }
+ super.dispose();
+ }
+
protected class FacetActionMapImpl extends HashMap implements FacetActionMap {
private static final long serialVersionUID = 1L;
private boolean supressNotification = false;
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/FacetProjectCreationOperation.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/FacetProjectCreationOperation.java
index abdcd14..5d0fd7a 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/FacetProjectCreationOperation.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/FacetProjectCreationOperation.java
@@ -153,9 +153,16 @@
public static void addDefaultFactets(IFacetedProject facetProj, IRuntime runtime) throws ExecutionException {
if (runtime != null) {
- final IFacetedProjectWorkingCopy fpjwc = facetProj.createWorkingCopy();
- Set<IProjectFacetVersion> presetFacets = fpjwc.getDefaultConfiguration().getProjectFacets();
- addDefaultFacets(facetProj, presetFacets);
+ IFacetedProjectWorkingCopy fpjwc = null;
+ try{
+ fpjwc = facetProj.createWorkingCopy();
+ Set<IProjectFacetVersion> presetFacets = fpjwc.getDefaultConfiguration().getProjectFacets();
+ addDefaultFacets(facetProj, presetFacets);
+ } finally{
+ if(fpjwc != null){
+ fpjwc.dispose();
+ }
+ }
}
}