Bug 560689 - NPE accessing IResource.getLocation on a non standard
filesystem (EFS) implementation

- Fix NPE in context menu 'Maven > Update Project ...'
- Fix NPE in context menu 'Maven > Download Javadoc' and 'Maven >
Download Sources'

Change-Id: Ib91833f6f5de6194250121068b643980c50d28ce
Signed-off-by: Reto Weiss <reto.weiss@axonivy.com>
diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/components/NestedProjectsComposite.java b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/components/NestedProjectsComposite.java
index d47d7bb..1c89c90 100644
--- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/components/NestedProjectsComposite.java
+++ b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/components/NestedProjectsComposite.java
@@ -352,6 +352,9 @@
       try {
         IFileStore store = EFS.getStore(locationURI);
         File file = store.toLocalFile(0, null);
+        if(file == null) {
+          file = store.toLocalFile(EFS.CACHE, null);
+        }
         return file.toString() + SEPARATOR;
       } catch(CoreException ex) {
         log.error(ex.getMessage(), ex);
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryManager.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryManager.java
index 765de98..cbadad2 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryManager.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryManager.java
@@ -915,7 +915,7 @@
 
       /*package*/MavenExecutionRequest configureExecutionRequest(MavenExecutionRequest request, IProjectRegistry state,
           IFile pom, ResolverConfiguration resolverConfiguration) throws CoreException {
-    if(pom != null) {
+    if(pom != null && pom.getLocation() != null) {
       request.setPom(pom.getLocation().toFile());
     }