[189165] StackOverflowError opening workspace with custom configur...
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectFrameworkImpl.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectFrameworkImpl.java
index f88f0d0..d7ae01a 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectFrameworkImpl.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectFrameworkImpl.java
@@ -310,14 +310,22 @@
public IPreset definePreset( final String name,
final Set<IProjectFacetVersion> facets )
{
- return definePreset( name, "", facets, true ); //$NON-NLS-1$
+ synchronized( this.presets )
+ {
+ initializePresets();
+ return definePreset( name, "", facets, true ); //$NON-NLS-1$
+ }
}
public IPreset definePreset( final String name,
final String description,
final Set<IProjectFacetVersion> facets )
{
- return definePreset( name, description, facets, true );
+ synchronized( this.presets )
+ {
+ initializePresets();
+ return definePreset( name, description, facets, true );
+ }
}
private IPreset definePreset( final String name,
@@ -325,33 +333,28 @@
final Set<IProjectFacetVersion> facets,
final boolean save )
{
- synchronized( this.presets )
+ String id;
+ int i = 0;
+
+ do
{
- initializePresets();
-
- String id;
- int i = 0;
-
- do
- {
- id = ".usr." + i; //$NON-NLS-1$
- i++;
- }
- while( this.presets.containsKey( id ) );
-
- final UserPreset preset
- = new UserPreset( id, name, description == null ? "" : description, //$NON-NLS-1$
- facets );
-
- this.presets.add( id, preset );
-
- if( save )
- {
- saveUserPresets();
- }
-
- return preset;
+ id = ".usr." + i; //$NON-NLS-1$
+ i++;
}
+ while( this.presets.containsKey( id ) );
+
+ final UserPreset preset
+ = new UserPreset( id, name, description == null ? "" : description, //$NON-NLS-1$
+ facets );
+
+ this.presets.add( id, preset );
+
+ if( save )
+ {
+ saveUserPresets();
+ }
+
+ return preset;
}
public boolean deletePreset( final IPreset preset )
@@ -937,7 +940,7 @@
}
}
- // Check the contrains on all of the facets.
+ // Check the constrains on all of the facets.
for( IProjectFacetVersion fv : all )
{