Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 261914 | Differences between
and this patch

Collapse All | Expand All

(-)j2eeplugin/org/eclipse/jst/j2ee/internal/deployables/J2EEDeployableFactory.java (-4 / +30 lines)
Lines 12-17 Link Here
12
12
13
import java.util.ArrayList;
13
import java.util.ArrayList;
14
import java.util.HashMap;
14
import java.util.HashMap;
15
import java.util.Iterator;
15
import java.util.List;
16
import java.util.List;
16
import java.util.Map;
17
import java.util.Map;
17
18
Lines 38-44 Link Here
38
 * J2EE module factory.
39
 * J2EE module factory.
39
 */
40
 */
40
public class J2EEDeployableFactory extends ProjectModuleFactoryDelegate {
41
public class J2EEDeployableFactory extends ProjectModuleFactoryDelegate {
41
	protected Map moduleDelegates = new HashMap(5);
42
	protected Map <IModule, ModuleDelegate> moduleDelegates = new HashMap<IModule, ModuleDelegate>(5);
42
43
43
	public static final String ID = "org.eclipse.jst.j2ee.server"; //$NON-NLS-1$
44
	public static final String ID = "org.eclipse.jst.j2ee.server"; //$NON-NLS-1$
44
45
Lines 68-74 Link Here
68
	}
69
	}
69
70
70
	public ModuleDelegate getModuleDelegate(IModule module) {
71
	public ModuleDelegate getModuleDelegate(IModule module) {
71
		return (ModuleDelegate) moduleDelegates.get(module);
72
		if (module == null)
73
			return null;
74
75
		ModuleDelegate md = (ModuleDelegate) moduleDelegates.get(module);
76
77
		if (md == null) {
78
			createModules(module.getProject());
79
			md = (ModuleDelegate) moduleDelegates.get(module);
80
		}
81
82
		return md;
72
	}
83
	}
73
84
74
	protected IModule[] createModuleDelegates(IVirtualComponent component) {
85
	protected IModule[] createModuleDelegates(IVirtualComponent component) {
Lines 171-177 Link Here
171
		};
182
		};
172
	}
183
	}
173
184
174
	protected void clearCache() {
185
	protected void clearCache(IProject project) {
175
		moduleDelegates = new HashMap(5);
186
		super.clearCache(project);
187
		List<IModule> modulesToRemove = null;
188
		for (Iterator<IModule> iterator = moduleDelegates.keySet().iterator(); iterator.hasNext();) {
189
			IModule module = iterator.next();
190
			if (module.getProject().equals(project)) {
191
				if (modulesToRemove == null) {
192
					modulesToRemove = new ArrayList<IModule>();
193
				}
194
				modulesToRemove.add(module);
195
			}
196
		}
197
		if (modulesToRemove != null) {
198
			for (IModule module : modulesToRemove) {
199
				moduleDelegates.remove(module);
200
			}
201
		}
176
	}
202
	}
177
}
203
}
(-)earproject/org/eclipse/jst/jee/internal/deployables/JEEDeployableFactory.java (-5 / +33 lines)
Lines 13-18 Link Here
13
import java.util.ArrayList;
13
import java.util.ArrayList;
14
import java.util.Arrays;
14
import java.util.Arrays;
15
import java.util.HashMap;
15
import java.util.HashMap;
16
import java.util.Iterator;
16
import java.util.List;
17
import java.util.List;
17
import java.util.Map;
18
import java.util.Map;
18
19
Lines 40-46 Link Here
40
 * J2EE module factory.
41
 * J2EE module factory.
41
 */
42
 */
42
public class JEEDeployableFactory extends ProjectModuleFactoryDelegate {
43
public class JEEDeployableFactory extends ProjectModuleFactoryDelegate {
43
	protected Map moduleDelegates = new HashMap(5);
44
	protected Map <IModule, ModuleDelegate> moduleDelegates = new HashMap<IModule, ModuleDelegate>(5);
44
45
45
	public static final String ID = "org.eclipse.jst.jee.server"; //$NON-NLS-1$
46
	public static final String ID = "org.eclipse.jst.jee.server"; //$NON-NLS-1$
46
47
Lines 70-76 Link Here
70
	}
71
	}
71
72
72
	public ModuleDelegate getModuleDelegate(IModule module) {
73
	public ModuleDelegate getModuleDelegate(IModule module) {
73
		return (ModuleDelegate) moduleDelegates.get(module);
74
		if (module == null)
75
			return null;
76
77
		ModuleDelegate md = (ModuleDelegate) moduleDelegates.get(module);
78
79
		if (md == null) {
80
			createModules(module.getProject());
81
			md = (ModuleDelegate) moduleDelegates.get(module);
82
		}
83
84
		return md;
74
	}
85
	}
75
86
76
	protected IModule[] createModuleDelegates(IVirtualComponent component) {
87
	protected IModule[] createModuleDelegates(IVirtualComponent component) {
Lines 172-179 Link Here
172
				new Path(".settings/org.eclipse.wst.common.project.facet.core.xml") // facets
183
				new Path(".settings/org.eclipse.wst.common.project.facet.core.xml") // facets
173
		};
184
		};
174
	}
185
	}
175
186
	
176
	protected void clearCache() {
187
	protected void clearCache(IProject project) {
177
		moduleDelegates = new HashMap(5);
188
		super.clearCache(project);
189
		List<IModule> modulesToRemove = null;
190
		for (Iterator<IModule> iterator = moduleDelegates.keySet().iterator(); iterator.hasNext();) {
191
			IModule module = iterator.next();
192
			if (module.getProject().equals(project)) {
193
				if (modulesToRemove == null) {
194
					modulesToRemove = new ArrayList<IModule>();
195
				}
196
				modulesToRemove.add(module);
197
			}
198
		}
199
		if (modulesToRemove != null) {
200
			for (IModule module : modulesToRemove) {
201
				moduleDelegates.remove(module);
202
			}
203
		}
178
	}
204
	}
205
	
206
	
179
}
207
}

Return to bug 261914