diff --git a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/TestRepository.java b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/TestRepository.java index b30fa59bd..687076f10 100644 --- a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/TestRepository.java +++ b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/TestRepository.java @@ -106,9 +106,9 @@ import org.eclipse.jgit.util.io.SafeBufferedOutputStream; * type of Repository the test data is stored on. */ public class TestRepository { - private static final PersonIdent author; + private static final PersonIdent defaultAuthor; - private static final PersonIdent committer; + private static final PersonIdent defaultCommitter; static { final MockSystemReader m = new MockSystemReader(); @@ -117,11 +117,11 @@ public class TestRepository { final String an = "J. Author"; final String ae = "jauthor@example.com"; - author = new PersonIdent(an, ae, now, tz); + defaultAuthor = new PersonIdent(an, ae, now, tz); final String cn = "J. Committer"; final String ce = "jcommitter@example.com"; - committer = new PersonIdent(cn, ce, now, tz); + defaultCommitter = new PersonIdent(cn, ce, now, tz); } private final R db; @@ -191,8 +191,8 @@ public class TestRepository { * the commit builder to store. */ public void setAuthorAndCommitter(org.eclipse.jgit.lib.CommitBuilder c) { - c.setAuthor(new PersonIdent(author, new Date(now))); - c.setCommitter(new PersonIdent(committer, new Date(now))); + c.setAuthor(new PersonIdent(defaultAuthor, new Date(now))); + c.setCommitter(new PersonIdent(defaultCommitter, new Date(now))); } /** @@ -217,11 +217,9 @@ public class TestRepository { */ public RevBlob blob(final byte[] content) throws Exception { ObjectId id; - try { - id = inserter.insert(Constants.OBJ_BLOB, content); - inserter.flush(); - } finally { - inserter.release(); + try (ObjectInserter ins = inserter) { + id = ins.insert(Constants.OBJ_BLOB, content); + ins.flush(); } return pool.lookupBlob(id); } @@ -260,11 +258,9 @@ public class TestRepository { b.add(e); b.finish(); ObjectId root; - try { - root = dc.writeTree(inserter); - inserter.flush(); - } finally { - inserter.release(); + try (ObjectInserter ins = inserter) { + root = dc.writeTree(ins); + ins.flush(); } return pool.lookupTree(root); } @@ -281,18 +277,19 @@ public class TestRepository { */ public RevObject get(final RevTree tree, final String path) throws Exception { - final TreeWalk tw = new TreeWalk(pool.getObjectReader()); - tw.setFilter(PathFilterGroup.createFromStrings(Collections - .singleton(path))); - tw.reset(tree); - while (tw.next()) { - if (tw.isSubtree() && !path.equals(tw.getPathString())) { - tw.enterSubtree(); - continue; + try (TreeWalk tw = new TreeWalk(pool.getObjectReader())) { + tw.setFilter(PathFilterGroup.createFromStrings(Collections + .singleton(path))); + tw.reset(tree); + while (tw.next()) { + if (tw.isSubtree() && !path.equals(tw.getPathString())) { + tw.enterSubtree(); + continue; + } + final ObjectId entid = tw.getObjectId(0); + final FileMode entmode = tw.getFileMode(0); + return pool.lookupAny(entid, entmode.getObjectType()); } - final ObjectId entid = tw.getObjectId(0); - final FileMode entmode = tw.getFileMode(0); - return pool.lookupAny(entid, entmode.getObjectType()); } fail("Can't find " + path + " in tree " + tree.name()); return null; // never reached. @@ -373,15 +370,13 @@ public class TestRepository { c = new org.eclipse.jgit.lib.CommitBuilder(); c.setTreeId(tree); c.setParentIds(parents); - c.setAuthor(new PersonIdent(author, new Date(now))); - c.setCommitter(new PersonIdent(committer, new Date(now))); + c.setAuthor(new PersonIdent(defaultAuthor, new Date(now))); + c.setCommitter(new PersonIdent(defaultCommitter, new Date(now))); c.setMessage(""); ObjectId id; - try { - id = inserter.insert(c); - inserter.flush(); - } finally { - inserter.release(); + try (ObjectInserter ins = inserter) { + id = ins.insert(c); + ins.flush(); } return pool.lookupCommit(id); } @@ -411,14 +406,12 @@ public class TestRepository { final TagBuilder t = new TagBuilder(); t.setObjectId(dst); t.setTag(name); - t.setTagger(new PersonIdent(committer, new Date(now))); + t.setTagger(new PersonIdent(defaultCommitter, new Date(now))); t.setMessage(""); ObjectId id; - try { - id = inserter.insert(t); - inserter.flush(); - } finally { - inserter.release(); + try (ObjectInserter ins = inserter) { + id = ins.insert(t); + ins.flush(); } return (RevTag) pool.lookupAny(id, Constants.OBJ_TAG); } @@ -581,34 +574,35 @@ public class TestRepository { */ public void fsck(RevObject... tips) throws MissingObjectException, IncorrectObjectTypeException, IOException { - ObjectWalk ow = new ObjectWalk(db); - if (tips.length != 0) { - for (RevObject o : tips) - ow.markStart(ow.parseAny(o)); - } else { - for (Ref r : db.getAllRefs().values()) - ow.markStart(ow.parseAny(r.getObjectId())); - } + try (ObjectWalk ow = new ObjectWalk(db)) { + if (tips.length != 0) { + for (RevObject o : tips) + ow.markStart(ow.parseAny(o)); + } else { + for (Ref r : db.getAllRefs().values()) + ow.markStart(ow.parseAny(r.getObjectId())); + } - ObjectChecker oc = new ObjectChecker(); - for (;;) { - final RevCommit o = ow.next(); - if (o == null) - break; + ObjectChecker oc = new ObjectChecker(); + for (;;) { + final RevCommit o = ow.next(); + if (o == null) + break; - final byte[] bin = db.open(o, o.getType()).getCachedBytes(); - oc.checkCommit(bin); - assertHash(o, bin); - } + final byte[] bin = db.open(o, o.getType()).getCachedBytes(); + oc.checkCommit(bin); + assertHash(o, bin); + } - for (;;) { - final RevObject o = ow.nextObject(); - if (o == null) - break; + for (;;) { + final RevObject o = ow.nextObject(); + if (o == null) + break; - final byte[] bin = db.open(o, o.getType()).getCachedBytes(); - oc.check(o.getType(), bin); - assertHash(o, bin); + final byte[] bin = db.open(o, o.getType()).getCachedBytes(); + oc.check(o.getType(), bin); + assertHash(o, bin); + } } } @@ -636,35 +630,27 @@ public class TestRepository { NullProgressMonitor m = NullProgressMonitor.INSTANCE; final File pack, idx; - PackWriter pw = new PackWriter(db); - try { + try (PackWriter pw = new PackWriter(db)) { Set all = new HashSet(); for (Ref r : db.getAllRefs().values()) all.add(r.getObjectId()); pw.preparePack(m, all, Collections. emptySet()); final ObjectId name = pw.computeName(); - OutputStream out; pack = nameFor(odb, name, ".pack"); - out = new SafeBufferedOutputStream(new FileOutputStream(pack)); - try { + try (OutputStream out = + new SafeBufferedOutputStream(new FileOutputStream(pack))) { pw.writePack(m, m, out); - } finally { - out.close(); } pack.setReadOnly(); idx = nameFor(odb, name, ".idx"); - out = new SafeBufferedOutputStream(new FileOutputStream(idx)); - try { + try (OutputStream out = + new SafeBufferedOutputStream(new FileOutputStream(idx))) { pw.writeIndex(out); - } finally { - out.close(); } idx.setReadOnly(); - } finally { - pw.release(); } odb.openPack(pack); @@ -760,6 +746,9 @@ public class TestRepository { private RevCommit self; + private PersonIdent author; + private PersonIdent committer; + CommitBuilder() { branch = null; } @@ -851,6 +840,22 @@ public class TestRepository { return this; } + public CommitBuilder ident(PersonIdent ident) { + author = ident; + committer = ident; + return this; + } + + public CommitBuilder author(PersonIdent a) { + author = a; + return this; + } + + public CommitBuilder committer(PersonIdent c) { + committer = c; + return this; + } + public RevCommit create() throws Exception { if (self == null) { TestRepository.this.tick(tick); @@ -860,18 +865,20 @@ public class TestRepository { c = new org.eclipse.jgit.lib.CommitBuilder(); c.setParentIds(parents); setAuthorAndCommitter(c); + if (author != null) + c.setAuthor(author); + if (committer != null) + c.setCommitter(committer); c.setMessage(message); ObjectId commitId; - try { + try (ObjectInserter ins = inserter) { if (topLevelTree != null) c.setTreeId(topLevelTree); else - c.setTreeId(tree.writeTree(inserter)); - commitId = inserter.insert(c); - inserter.flush(); - } finally { - inserter.release(); + c.setTreeId(tree.writeTree(ins)); + commitId = ins.insert(c); + ins.flush(); } self = pool.lookupCommit(commitId);