Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 364528

Summary: Duplicate EAR name causes IllegalArgumentException while validation in EAR wizard
Product: [WebTools] WTP Java EE Tools Reporter: Diego Sahagun <diegosr>
Component: jst.j2eeAssignee: Diego Sahagun <diegosr>
Status: RESOLVED FIXED QA Contact: Chuck Bridgham <cbridgha>
Severity: normal    
Priority: P3 CC: ccc, shr31223
Version: unspecifiedFlags: cbridgha: review+
Target Milestone: 3.2.5 P   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
Proposed fix for this problem ccc: iplog+

Description Diego Sahagun CLA 2011-11-22 18:15:36 EST
Build Identifier: 362_20110302

While validating the typed name of an EAR project in the EAR creation wizard there is an exception if a name of an already existing project is typed:

Example name: "EAR"

java.lang.IllegalArgumentException: Path must include project and resource name: /EAR
    at org.eclipse.core.runtime.Assert.isLegal(Unknown Source)
    at org.eclipse.core.internal.resources.Workspace.newResource(Unknown Source)
    at org.eclipse.core.internal.resources.Container.getFolder(Unknown Source)
    at org.eclipse.jst.j2ee.internal.earcreation.EarFacetInstallDataModelProvider.getDefaultProperty(Unknown Source)
    at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelImpl.getProperty(Unknown Source)
    at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelImpl.getStringProperty(Unknown Source)
    at org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelProvider.getStringProperty(Unknown Source)
    at org.eclipse.jst.j2ee.internal.earcreation.EarFacetInstallDataModelProvider.validate(Unknown Source)
    at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelImpl.validateProperty(Unknown Source)
    at org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelWizardPage.validateProperty(Unknown Source)
    at org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelWizardPage.validateControlsBase(Unknown Source)
    at org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelWizardPage.validatePage(Unknown Source)
    at org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelWizardPage$1.run(Unknown Source)
    at org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelWizardPage.propertyChanged(Unknown Source)
    at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelImpl.notifyListeners(Unknown Source)
    at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelImpl.notifyPropertyChange(Unknown Source)
    at org.eclipse.jst.j2ee.internal.earcreation.EarFacetInstallDataModelProvider.propertySet(Unknown Source)
    at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelImpl.internalSetProperty(Unknown Source)
    at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelImpl.setProperty(Unknown Source)
    at org.eclipse.wst.common.componentcore.datamodel.FacetProjectCreationDataModelProvider.propertySet(Unknown Source)
    at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelImpl.internalSetProperty(Unknown Source)
    at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelImpl.setProperty(Unknown Source)
    at org.eclipse.wst.common.componentcore.datamodel.FacetProjectCreationDataModelProvider$3.propertyChanged(Unknown Source)
    at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelImpl.notifyListeners(Unknown Source)
    at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelImpl.notifyPropertyChange(Unknown Source)
    at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelImpl.internalSetProperty(Unknown Source)
    at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelImpl.setProperty(Unknown Source)
    at org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelSynchHelper.setProperty(Unknown Source)
    at org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelSynchHelper$ModifyTextListener.modifyText(Unknown Source)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
    at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Text.wmCommandChild(Unknown Source)
    at org.eclipse.swt.widgets.Control.WM_COMMAND(Unknown Source)
    at org.eclipse.swt.widgets.Control.windowProc(Unknown Source)
    at org.eclipse.swt.widgets.Display.windowProc(Unknown Source)
    at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
    at org.eclipse.swt.internal.win32.OS.CallWindowProc(Unknown Source)
    at org.eclipse.swt.widgets.Text.callWindowProc(Unknown Source)
    at org.eclipse.swt.widgets.Control.windowProc(Unknown Source)
    at org.eclipse.swt.widgets.Text.windowProc(Unknown Source)
    at org.eclipse.swt.widgets.Display.windowProc(Unknown Source)
    at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
    at org.eclipse.swt.internal.win32.OS.DispatchMessage(Unknown Source)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
    at org.eclipse.jface.window.Window.runEventLoop(Unknown Source)
    at org.eclipse.jface.window.Window.open(Unknown Source)
    at org.eclipse.ui.internal.actions.NewWizardShortcutAction.run(Unknown Source)
    at org.eclipse.jface.action.Action.runWithEvent(Unknown Source)
    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(Unknown Source)
    at org.eclipse.jface.action.ActionContributionItem.access$2(Unknown Source)
    at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(Unknown Source)
    at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
    at org.eclipse.ui.internal.Workbench.runEventLoop(Unknown Source)
    at org.eclipse.ui.internal.Workbench.runUI(Unknown Source)
    at org.eclipse.ui.internal.Workbench.access$4(Unknown Source)
    at org.eclipse.ui.internal.Workbench$7.run(Unknown Source)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Unknown Source)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Unknown Source)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(Unknown Source)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(Unknown Source)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Unknown Source)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Unknown Source)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Unknown Source)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Unknown Source)
    at org.eclipse.equinox.launcher.Main.basicRun(Unknown Source)
    at org.eclipse.equinox.launcher.Main.run(Unknown Source)

Reproducible: Always

Steps to Reproduce:
1.Create an EAR project named EAR
2.Open again the EAR project wizard and type "EAR" for the name again 
3.You should see the exception.
Comment 1 Diego Sahagun CLA 2011-11-22 18:24:26 EST
Created attachment 207392 [details]
Proposed fix for this problem

The proposed fix shields the validation against sending a root ("/") parameter to the method IProject.getFolder method.
Comment 2 Chuck Bridgham CLA 2011-12-07 13:16:22 EST
approved
Comment 3 Roberto Sanchez Herrera CLA 2012-01-20 15:29:31 EST
Code committed and released to R3_2_5_patches. Resolving bug.