Browse Source

Merge changes I627681be,I334034a2

* changes:
  TreeWalk: Do not close reader passed explicitly to constructor
  TreeWalk: Stop using deprecated ObjectReader#release()
stable-4.0
Shawn Pearce 10 years ago committed by Gerrit Code Review @ Eclipse.org
parent
commit
0f51246b0e
  1. 25
      org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java

25
org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java

@ -157,11 +157,8 @@ public class TreeWalk implements AutoCloseable {
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 class TreeWalk implements AutoCloseable {
private final ObjectReader reader;
private final boolean closeReader;
private final MutableObjectId idBuffer = new MutableObjectId();
private TreeFilter filter;
@ -220,22 +219,30 @@ public class TreeWalk implements AutoCloseable {
* 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 class TreeWalk implements AutoCloseable {
*/
@Override
public void close() {
reader.close();
if (closeReader) {
reader.close();
}
}
/**

Loading…
Cancel
Save