fix defect 103382. JCC
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEComponentCreationDataModelProvider.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEComponentCreationDataModelProvider.java
index 99ef114..04779d3 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEComponentCreationDataModelProvider.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEComponentCreationDataModelProvider.java
@@ -146,7 +146,7 @@
 		return status;
 	}
 
-	private ComponentHandle computeEARHandle(){
+	protected ComponentHandle computeEARHandle(){
 		String earProjname = (String) model.getProperty(EAR_COMPONENT_NAME);
 		
 		IDataModel earDM = (IDataModel) model.getProperty(NESTED_EAR_COMPONENT_CREATION_DM);	
@@ -438,19 +438,25 @@
 				}
 			}
 		}else if(propertyName.equals(PROJECT_NAME)){
-			String projName = getDataModel().getStringProperty(IComponentCreationDataModelProperties.PROJECT_NAME);
-			IDataModel earDM = (IDataModel) model.getProperty(NESTED_EAR_COMPONENT_CREATION_DM);
-			ComponentHandle earHandle = (ComponentHandle) earDM.getProperty(EAR_COMPONENT_HANDLE);
-			if( earHandle != null && earHandle.getProject() != null ){
-				String earProjName = earHandle.getProject().getName();
-				if( earProjName.equalsIgnoreCase(projName)){
-					String msg = msg = EARCreationResourceHandler.getString(EARCreationResourceHandler.EAR_PROJECTNAME_SAMEAS_MODULE);
-					return WTPCommonPlugin.createErrorStatus(msg);
+			if (!isCreatingEarComponent()) {
+				String projName = getDataModel().getStringProperty(IComponentCreationDataModelProperties.PROJECT_NAME);
+				IDataModel earDM = (IDataModel) model.getProperty(NESTED_EAR_COMPONENT_CREATION_DM);
+				ComponentHandle earHandle = (ComponentHandle) earDM.getProperty(EAR_COMPONENT_HANDLE);
+				if( earHandle != null && earHandle.getProject() != null ){
+					String earProjName = earHandle.getProject().getName();
+					if( earProjName.equalsIgnoreCase(projName)){
+						String msg = msg = EARCreationResourceHandler.getString(EARCreationResourceHandler.EAR_PROJECTNAME_SAMEAS_MODULE);
+						return WTPCommonPlugin.createErrorStatus(msg);
+					}
 				}
 			}
 		}
 		return super.validate(propertyName);
 	}
+	
+	protected boolean isCreatingEarComponent() {
+		return false;
+	}
 
 	private IStatus validateComponentVersionProperty() {
 		int componentVersion = model.getIntProperty(COMPONENT_VERSION);
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/EarComponentCreationDataModelProvider.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/EarComponentCreationDataModelProvider.java
index ac334dd..a40fe6a 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/EarComponentCreationDataModelProvider.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/EarComponentCreationDataModelProvider.java
@@ -21,6 +21,7 @@
 import org.eclipse.wst.common.componentcore.resources.ComponentHandle;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 import org.eclipse.wst.common.frameworks.datamodel.DataModelPropertyDescriptor;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
 import org.eclipse.wst.common.frameworks.datamodel.IDataModelOperation;
 import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonPlugin;
 import org.eclipse.wst.server.core.IRuntime;
@@ -204,5 +205,23 @@
 	public DataModelPropertyDescriptor[] getValidPropertyDescriptors(String propertyName){
 		return super.getValidPropertyDescriptors(propertyName);
 	}	
+	
+	protected boolean isCreatingEarComponent() {
+		return true;
+	}
+
+	protected ComponentHandle computeEARHandle(){
+		String earProjname = (String) model.getProperty(COMPONENT_NAME);
+		
+		IDataModel earDM = (IDataModel) model.getProperty(NESTED_EAR_COMPONENT_CREATION_DM);	
+		earDM.setProperty(IEarComponentCreationDataModelProperties.PROJECT_NAME, earProjname);
+		
+		ComponentHandle handle = null;
+		
+		if( earProjname != null && !earProjname.equals("") && validate(COMPONENT_NAME).isOK()){
+			handle = ComponentHandle.create(ProjectUtilities.getProject(earProjname), earProjname);
+		}
+		return handle;
+	}
 
 }