Guard agains null ReflogReader if named ref does not exist
Follow up on egit bug 466973. Change-Id: Idd83d87803e86b25f106dfd725214b5a3ec5171c Signed-off-by: Andrey Loskutov <loskutov@gmx.de> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
This commit is contained in:
parent
7ce6abe858
commit
4d565f0b5f
|
@ -52,6 +52,7 @@
|
|||
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||
import org.eclipse.jgit.api.errors.InvalidRefNameException;
|
||||
import org.eclipse.jgit.api.errors.JGitInternalException;
|
||||
import org.eclipse.jgit.api.errors.RefNotFoundException;
|
||||
import org.eclipse.jgit.errors.LockFailedException;
|
||||
import org.eclipse.jgit.internal.JGitText;
|
||||
import org.eclipse.jgit.internal.storage.file.ReflogWriter;
|
||||
|
@ -184,6 +185,10 @@ public ObjectId call() throws GitAPIException {
|
|||
List<ReflogEntry> entries;
|
||||
try {
|
||||
ReflogReader reader = repo.getReflogReader(R_STASH);
|
||||
if (reader == null) {
|
||||
throw new RefNotFoundException(MessageFormat
|
||||
.format(JGitText.get().refNotResolved, stashRef));
|
||||
}
|
||||
entries = reader.getReverseEntries();
|
||||
} catch (IOException e) {
|
||||
throw new JGitInternalException(JGitText.get().stashDropFailed, e);
|
||||
|
|
|
@ -751,8 +751,11 @@ && isAllHex(revstr, dashg + 4)) {
|
|||
|
||||
private String resolveReflogCheckout(int checkoutNo)
|
||||
throws IOException {
|
||||
List<ReflogEntry> reflogEntries = getReflogReader(Constants.HEAD)
|
||||
.getReverseEntries();
|
||||
ReflogReader reader = getReflogReader(Constants.HEAD);
|
||||
if (reader == null) {
|
||||
return null;
|
||||
}
|
||||
List<ReflogEntry> reflogEntries = reader.getReverseEntries();
|
||||
for (ReflogEntry entry : reflogEntries) {
|
||||
CheckoutEntry checkout = entry.parseCheckout();
|
||||
if (checkout != null)
|
||||
|
@ -773,6 +776,11 @@ private RevCommit resolveReflog(RevWalk rw, Ref ref, String time)
|
|||
}
|
||||
assert number >= 0;
|
||||
ReflogReader reader = getReflogReader(ref.getName());
|
||||
if (reader == null) {
|
||||
throw new RevisionSyntaxException(
|
||||
MessageFormat.format(JGitText.get().reflogEntryNotFound,
|
||||
Integer.valueOf(number), ref.getName()));
|
||||
}
|
||||
ReflogEntry entry = reader.getReverseEntry(number);
|
||||
if (entry == null)
|
||||
throw new RevisionSyntaxException(MessageFormat.format(
|
||||
|
|
Loading…
Reference in New Issue