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

Bug 342934

Summary: NPE during Refactoring (ProjectRenameOperation)
Product: [WebTools] WTP Java EE Tools Reporter: Patric Rufflar <patric>
Component: jst.j2eeAssignee: Israel Gomez Delgado <israelgd>
Status: RESOLVED FIXED QA Contact: Chuck Bridgham <cbridgha>
Severity: major    
Priority: P3 CC: ccc
Version: 3.2.3Flags: ccc: review+
Target Milestone: 3.3   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
Null check added ccc: iplog+

Description Patric Rufflar CLA 2011-04-15 05:00:04 EDT
Build Identifier: 3.2.3

java.lang.NullPointerException
at org.eclipse.jst.j2ee.refactor.operations.ProjectRenameOperation$1.run(ProjectRenameOperation.java:102)
at org.eclipse.jst.j2ee.web.componentcore.util.WebArtifactEdit.modify(WebArtifactEdit.java:686)
at org.eclipse.jst.j2ee.refactor.operations.ProjectRenameOperation.updateProject(ProjectRenameOperation.java:97)
at org.eclipse.jst.j2ee.refactor.operations.ProjectRefactorOperation.execute(ProjectRefactorOperation.java:56)
at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperationImpl$1.run(DataModelPausibleOperationImpl.java:385)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperationImpl.runOperation(DataModelPausibleOperationImpl.java:410)
at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperationImpl.runOperation(DataModelPausibleOperationImpl.java:360)
at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperationImpl.doExecute(DataModelPausibleOperationImpl.java:247)
at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperationImpl.executeImpl(DataModelPausibleOperationImpl.java:219)
at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperationImpl.cacheThreadAndContinue(DataModelPausibleOperationImpl.java:89)
at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperationImpl.execute(DataModelPausibleOperationImpl.java:207)
at org.eclipse.jst.j2ee.refactor.listeners.ProjectRefactoringListener$1.runInWorkspace(ProjectRefactoringListener.java:226)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)


Reproducible: Didn't try
Comment 1 Carl Anderson CLA 2011-04-15 14:26:55 EDT
The line in question is:

if (cdg.getDisplayName().equals(oldProjectName)) {

So cdg.getDisplayName() must be returning a null.  We should check for that.
Comment 2 Israel Gomez Delgado CLA 2011-04-18 13:06:19 EDT
Created attachment 193501 [details]
Null check added

the behavior is not several impacted. The problem is trying to get the Display name from the Deploy Descriptor, when the current name is null, the <display-name> attribute will not be changed, as if the user changed it manually before run the re-factor.
Comment 3 Carl Anderson CLA 2011-04-19 10:24:04 EDT
Committed to HEAD for WTP 3.3 M7