Merge changes I627681be,I334034a2

* changes:
  TreeWalk: Do not close reader passed explicitly to constructor
  TreeWalk: Stop using deprecated ObjectReader#release()
This commit is contained in:
Shawn Pearce 2015-03-10 19:55:18 -04:00 committed by Gerrit Code Review @ Eclipse.org
commit 0f51246b0e
1 changed files with 17 additions and 8 deletions

View File

@ -157,11 +157,8 @@ public static TreeWalk forPath(final ObjectReader reader, final String path,
public static TreeWalk forPath(final Repository db, final String path,
final AnyObjectId... trees) throws MissingObjectException,
IncorrectObjectTypeException, CorruptObjectException, IOException {
ObjectReader reader = db.newObjectReader();
try {
try (ObjectReader reader = db.newObjectReader()) {
return forPath(reader, path, trees);
} finally {
reader.release();
}
}
@ -198,6 +195,8 @@ public static TreeWalk forPath(final Repository db, final String path,
private final ObjectReader reader;
private final boolean closeReader;
private final MutableObjectId idBuffer = new MutableObjectId();
private TreeFilter filter;
@ -220,22 +219,30 @@ public static TreeWalk forPath(final Repository db, final String path,
* Create a new tree walker for a given repository.
*
* @param repo
* the repository the walker will obtain data from.
* the repository the walker will obtain data from. An
* ObjectReader will be created by the walker, and will be closed
* when the walker is closed.
*/
public TreeWalk(final Repository repo) {
this(repo.newObjectReader());
this(repo.newObjectReader(), true);
}
/**
* Create a new tree walker for a given repository.
*
* @param or
* the reader the walker will obtain tree data from.
* the reader the walker will obtain tree data from. The reader
* is not closed when the walker is closed.
*/
public TreeWalk(final ObjectReader or) {
this(or, false);
}
private TreeWalk(final ObjectReader or, final boolean closeReader) {
reader = or;
filter = TreeFilter.ALL;
trees = NO_TREES;
this.closeReader = closeReader;
}
/** @return the reader this walker is using to load objects. */
@ -264,7 +271,9 @@ public void release() {
*/
@Override
public void close() {
reader.close();
if (closeReader) {
reader.close();
}
}
/**