diff options
author | Andrey Loskutov | 2016-02-26 09:30:04 +0000 |
---|---|---|
committer | Andrey Loskutov | 2016-02-26 15:06:12 +0000 |
commit | 599f8ad058190b3b976c5ad1b9b9491f5c1a4e1a (patch) | |
tree | 2be67f655159c905fdf7c76b465a39d1343a240d /org.eclipse.egit.core/src/org/eclipse/egit/core/op | |
parent | 5dc7ac99cb0b52ad87e2c563f5dfecf9a800e82c (diff) | |
download | egit-599f8ad058190b3b976c5ad1b9b9491f5c1a4e1a.tar.gz egit-599f8ad058190b3b976c5ad1b9b9491f5c1a4e1a.tar.xz egit-599f8ad058190b3b976c5ad1b9b9491f5c1a4e1a.zip |
Check resource.getProject() for null before dereferencing it
Bug: 488538
Change-Id: I886cf1c772aa372fd4bba330541fc8ffb3556198
Diffstat (limited to 'org.eclipse.egit.core/src/org/eclipse/egit/core/op')
3 files changed, 15 insertions, 5 deletions
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/op/AssumeUnchangedOperation.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/op/AssumeUnchangedOperation.java index 527813d257..f401a2c772 100644 --- a/org.eclipse.egit.core/src/org/eclipse/egit/core/op/AssumeUnchangedOperation.java +++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/op/AssumeUnchangedOperation.java @@ -120,12 +120,17 @@ public class AssumeUnchangedOperation implements IEGitOperation { private void assumeValid(final IResource resource) throws CoreException { final IProject proj = resource.getProject(); + if (proj == null) { + return; + } final GitProjectData pd = GitProjectData.get(proj); - if (pd == null) + if (pd == null) { return; + } final RepositoryMapping rm = pd.getRepositoryMapping(resource); - if (rm == null) + if (rm == null) { return; + } final Repository db = rm.getRepository(); DirCache cache = caches.get(db); @@ -141,12 +146,14 @@ public class AssumeUnchangedOperation implements IEGitOperation { final String path = rm.getRepoRelativePath(resource); if (resource instanceof IContainer) { - for (final DirCacheEntry ent : cache.getEntriesWithin(path)) + for (final DirCacheEntry ent : cache.getEntriesWithin(path)) { ent.setAssumeValid(assumeUnchanged); + } } else { final DirCacheEntry ent = cache.getEntry(path); - if (ent != null) + if (ent != null) { ent.setAssumeValid(assumeUnchanged); + } } } } diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/op/CreatePatchOperation.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/op/CreatePatchOperation.java index b1cd1f55db..691a99a5b9 100644 --- a/org.eclipse.egit.core/src/org/eclipse/egit/core/op/CreatePatchOperation.java +++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/op/CreatePatchOperation.java @@ -181,7 +181,7 @@ public class CreatePatchOperation implements IEGitOperation { // for "workspace patches" add project header each time project changes if (DiffHeaderFormat.WORKSPACE == headerFormat) { IProject p = getProject(ent); - if (!p.equals(project)) { + if (p != null && !p.equals(project)) { project = p; getOutputStream().write( encodeASCII("#P " + project.getName() + "\n")); //$NON-NLS-1$ //$NON-NLS-2$ diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/op/UntrackOperation.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/op/UntrackOperation.java index c18024bda7..566e7071eb 100644 --- a/org.eclipse.egit.core/src/org/eclipse/egit/core/op/UntrackOperation.java +++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/op/UntrackOperation.java @@ -116,6 +116,9 @@ public class UntrackOperation implements IEGitOperation { private void remove(final IResource path) throws CoreException { final IProject proj = path.getProject(); + if (proj == null) { + return; + } final GitProjectData pd = GitProjectData.get(proj); if (pd == null) return; |