Merge changes I97c062d0,Ib4e1f37c
* changes: Simplify RevWalk#iterator by factoring out common code Simplify exception handling in RevWalk#iterator
This commit is contained in:
commit
54dd1d112a
|
@ -54,6 +54,7 @@
|
|||
import java.util.List;
|
||||
|
||||
import org.eclipse.jgit.annotations.NonNull;
|
||||
import org.eclipse.jgit.annotations.Nullable;
|
||||
import org.eclipse.jgit.errors.CorruptObjectException;
|
||||
import org.eclipse.jgit.errors.IncorrectObjectTypeException;
|
||||
import org.eclipse.jgit.errors.LargeObjectException;
|
||||
|
@ -1335,6 +1336,22 @@ public void dispose() {
|
|||
shallowCommitsInitialized = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Like {@link #next()}, but if a checked exception is thrown during the
|
||||
* walk it is rethrown as a {@link RevWalkException}.
|
||||
*
|
||||
* @throws RevWalkException if an {@link IOException} was thrown.
|
||||
* @return next most recent commit; null if traversal is over.
|
||||
*/
|
||||
@Nullable
|
||||
private RevCommit nextForIterator() {
|
||||
try {
|
||||
return next();
|
||||
} catch (IOException e) {
|
||||
throw new RevWalkException(e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
* <p>
|
||||
|
@ -1353,16 +1370,7 @@ public void dispose() {
|
|||
*/
|
||||
@Override
|
||||
public Iterator<RevCommit> iterator() {
|
||||
final RevCommit first;
|
||||
try {
|
||||
first = RevWalk.this.next();
|
||||
} catch (MissingObjectException e) {
|
||||
throw new RevWalkException(e);
|
||||
} catch (IncorrectObjectTypeException e) {
|
||||
throw new RevWalkException(e);
|
||||
} catch (IOException e) {
|
||||
throw new RevWalkException(e);
|
||||
}
|
||||
RevCommit first = nextForIterator();
|
||||
|
||||
return new Iterator<RevCommit>() {
|
||||
RevCommit next = first;
|
||||
|
@ -1374,17 +1382,9 @@ public boolean hasNext() {
|
|||
|
||||
@Override
|
||||
public RevCommit next() {
|
||||
try {
|
||||
final RevCommit r = next;
|
||||
next = RevWalk.this.next();
|
||||
return r;
|
||||
} catch (MissingObjectException e) {
|
||||
throw new RevWalkException(e);
|
||||
} catch (IncorrectObjectTypeException e) {
|
||||
throw new RevWalkException(e);
|
||||
} catch (IOException e) {
|
||||
throw new RevWalkException(e);
|
||||
}
|
||||
RevCommit r = next;
|
||||
next = nextForIterator();
|
||||
return r;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue