diff options
author | itrimble | 2011-03-21 23:17:14 +0000 |
---|---|---|
committer | itrimble | 2011-03-21 23:17:14 +0000 |
commit | 9fa8a0fa818c286bd3fdb662301eac36ba4dfb73 (patch) | |
tree | d564f3c12b3fb8b620f42dd535ec66a9aa4045ab | |
parent | 22ced9b304a7e91a302d3cf2cda7d210705f29a1 (diff) | |
download | webtools.jsf-9fa8a0fa818c286bd3fdb662301eac36ba4dfb73.tar.gz webtools.jsf-9fa8a0fa818c286bd3fdb662301eac36ba4dfb73.tar.xz webtools.jsf-9fa8a0fa818c286bd3fdb662301eac36ba4dfb73.zip |
Bug 330819 - Project Properties - Facets - Change Configuration - Receive npe error
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFFacetInstallDataModelProvider.java | 64 |
1 files changed, 46 insertions, 18 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFFacetInstallDataModelProvider.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFFacetInstallDataModelProvider.java index 9fc0b6dd3..be6eefb6c 100644 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFFacetInstallDataModelProvider.java +++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFFacetInstallDataModelProvider.java @@ -17,6 +17,7 @@ import java.util.Iterator; import java.util.Set; import java.util.regex.Pattern; +import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.IPath; @@ -40,10 +41,12 @@ import org.eclipse.osgi.util.NLS; import org.eclipse.wst.common.componentcore.ComponentCore; import org.eclipse.wst.common.componentcore.datamodel.FacetInstallDataModelProvider; import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetDataModelProperties; +import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; +import org.eclipse.wst.common.componentcore.resources.IVirtualFolder; import org.eclipse.wst.common.frameworks.datamodel.IDataModel; +import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action; import org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy; import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion; -import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action; /** * Provides a data model used by the JSF facet install. @@ -273,9 +276,14 @@ public class JSFFacetInstallDataModelProvider extends jars.add(entry.getPath().makeAbsolute().toString()); } } - } catch (JavaModelException e) { - // FIXME: what should we do in this case? - JSFCorePlugin.log(e, "Error searching class path"); //$NON-NLS-1$ + } catch (JavaModelException ignore) { + /* + * Bug 330819 - Project Properties - Facets - Change Configuration - Receive npe error + * + * Don't log error, as this is an expected exception if the Java project has not yet + * been created - continue processing. + */ + //JSFCorePlugin.log(e, "Error searching class path"); //$NON-NLS-1$ } } //else as we do not have a javaProject yet, all we can do is validate that there is no duplicate jars (absolute path) @@ -360,18 +368,30 @@ public class JSFFacetInstallDataModelProvider extends String webFolder = getWebContentFolderName(); if (proj.exists()) { - - webContentPath = ComponentCore.createComponent(proj).getRootFolder() - .getUnderlyingFolder().getRawLocation(); - } - else { - + //Bug 330819 - Project Properties - Facets - Change Configuration - Receive npe error + IVirtualComponent virtComponent = ComponentCore.createComponent(proj); + if (virtComponent != null) { + IVirtualFolder virtFolder = virtComponent.getRootFolder(); + if (virtFolder != null) { + IContainer container = virtFolder.getUnderlyingFolder(); + if (container != null) { + webContentPath = container.getRawLocation(); + } + } + } else { + //Java project has not been created yet + if (webFolder == null){ + webContentPath = proj.getFullPath(); + } else { + webContentPath = proj.getFullPath().append(webFolder); + } + } + } else { if (webFolder == null){ - //we got problems... should not happen - return proj.getFullPath(); + webContentPath = proj.getFullPath(); + } else { + webContentPath = proj.getFullPath().append(webFolder); } - webContentPath = proj.getFullPath().append(webFolder); - } return webContentPath; } @@ -380,10 +400,18 @@ public class JSFFacetInstallDataModelProvider extends String projName = (String)getProperty(FACET_PROJECT_NAME); IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projName); if (project.exists()){ - IPath webContentPath = ComponentCore.createComponent(project).getRootFolder() - .getUnderlyingFolder().getProjectRelativePath(); - - return webContentPath.toString(); + //Bug 330819 - Project Properties - Facets - Change Configuration - Receive npe error + IVirtualComponent virtComponent = ComponentCore.createComponent(project); + if (virtComponent != null) { + IVirtualFolder virtFolder = virtComponent.getRootFolder(); + if (virtFolder != null) { + IContainer container = virtFolder.getUnderlyingFolder(); + if (container != null) { + IPath webContentPath = container.getProjectRelativePath(); + return webContentPath.toString(); + } + } + } } IFacetedProjectWorkingCopy projWC = (IFacetedProjectWorkingCopy)getProperty(FACETED_PROJECT_WORKING_COPY); |