diff options
author | cbateman | 2009-09-02 18:02:49 +0000 |
---|---|---|
committer | cbateman | 2009-09-02 18:02:49 +0000 |
commit | 115111eb0f23a3a7ec0876f849c9ad764d505f4b (patch) | |
tree | a3fe21fd2679d4a0c9403b26b690551d5ec7ce39 | |
parent | 52d28464998277e6edf97076d59b2e7192a9ac15 (diff) | |
download | webtools.jsf-115111eb0f23a3a7ec0876f849c9ad764d505f4b.tar.gz webtools.jsf-115111eb0f23a3a7ec0876f849c9ad764d505f4b.tar.xz webtools.jsf-115111eb0f23a3a7ec0876f849c9ad764d505f4b.zip |
PMC approved fix for https://bugs.eclipse.org/bugs/show_bug.cgi?id=281108.
2 files changed, 39 insertions, 20 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/FacesConfigEditor.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/FacesConfigEditor.java index 02b3c8e89..bf9a2bce2 100644 --- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/FacesConfigEditor.java +++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/FacesConfigEditor.java @@ -822,9 +822,13 @@ public class FacesConfigEditor extends FormEditor implements if (isWebProject && _modelLoader.getEdit() != null) { // modelResource.save(Collections.EMPTY_MAP); - _modelLoader.getEdit() - .getDeploymentDescriptorResource().save( - Collections.EMPTY_MAP); + Resource deploymentDescriptorResource = _modelLoader.getEdit() + .getDeploymentDescriptorResource(); + if (deploymentDescriptorResource != null) + { + deploymentDescriptorResource.save( + Collections.EMPTY_MAP); + } IFile file = ((IFileEditorInput) getEditorInput()) .getFile(); pageflowPage.doSave(file, monitor_); diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig/facesconfig/org/eclipse/jst/jsf/facesconfig/util/FacesConfigArtifactEdit.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig/facesconfig/org/eclipse/jst/jsf/facesconfig/util/FacesConfigArtifactEdit.java index 89e340982..509eb12d0 100644 --- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig/facesconfig/org/eclipse/jst/jsf/facesconfig/util/FacesConfigArtifactEdit.java +++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig/facesconfig/org/eclipse/jst/jsf/facesconfig/util/FacesConfigArtifactEdit.java @@ -20,6 +20,7 @@ import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.jst.jsf.facesconfig.FacesConfigPlugin; import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigType; import org.eclipse.wst.common.componentcore.ArtifactEdit; +import org.eclipse.wst.common.componentcore.internal.ArtifactEditModel; import org.eclipse.wst.common.componentcore.resources.IVirtualFile; import org.eclipse.wst.common.componentcore.resources.IVirtualResource; import org.eclipse.wst.xml.core.internal.emf2xml.EMF2DOMSSERenderer; @@ -142,21 +143,29 @@ public final class FacesConfigArtifactEdit extends ArtifactEdit { return facesConfigURI; } - /** - * @return the model root - */ - public EObject getDeploymentDescriptorRoot() { - List contents = getDeploymentDescriptorResource().getContents(); - if (contents.size() > 0) - return (EObject) contents.get(0); - return null; - // TODO: XN - //addFacesConfigIfNecessary((IFacesConfigResource)getDeploymentDescriptorResource()); - //return (EObject) contents.get(0); - } + /** + * @return the model root + */ + public EObject getDeploymentDescriptorRoot() + { + Resource deploymentDescriptorResource = getDeploymentDescriptorResource(); + if (deploymentDescriptorResource != null) + { + List contents = deploymentDescriptorResource.getContents(); + if (contents.size() > 0) + { + return (EObject) contents.get(0); + } + } + return null; + // TODO: XN + // addFacesConfigIfNecessary((IFacesConfigResource)getDeploymentDescriptorResource()); + // return (EObject) contents.get(0); + } /** - * @return the EMF resource retrieved for this artifact's uri + * @return the EMF resource retrieved for this artifact's uri or null if + * this descriptor has not resource. */ public Resource getDeploymentDescriptorResource() { if (sFileName != null) { @@ -164,7 +173,12 @@ public final class FacesConfigArtifactEdit extends ArtifactEdit { } else {// default is "WEB-INF/faces-config.xml" facesConfigURI = URI.createURI(IFacesConfigConstants.FACES_CONFIG_URI); } - return getArtifactEditModel().getResource(facesConfigURI); + final ArtifactEditModel artifactEditModel = getArtifactEditModel(); + if (artifactEditModel != null) + { + return artifactEditModel.getResource(facesConfigURI); + } + return null; } /** @@ -210,9 +224,10 @@ public final class FacesConfigArtifactEdit extends ArtifactEdit { // TODO - XN This is a little hackish because it depends on the resource's // renderer being an EMF2DOMSedRenderer (which it is, but that could // change). - IFacesConfigResource resource = (IFacesConfigResource)getDeploymentDescriptorResource(); - if (resource != null) { - EMF2DOMSSERenderer renderer = (EMF2DOMSSERenderer) resource.getRenderer(); + Resource resource = getDeploymentDescriptorResource(); + if (resource instanceof IFacesConfigResource) { + EMF2DOMSSERenderer renderer = (EMF2DOMSSERenderer) + ((IFacesConfigResource)resource).getRenderer(); return renderer.getXMLModel(); } return null; |