From: Robin Rosenberg <robin.rosenberg@dewire.com>
To: spearce@spearce.org
Cc: git@vger.kernel.org, Robin Rosenberg <robin.rosenberg@dewire.com>
Subject: [JGIT PATCH 2/2] Improve closing of files in error situations.
Date: Tue, 2 Dec 2008 22:20:16 +0100 [thread overview]
Message-ID: <1228252816-5987-2-git-send-email-robin.rosenberg@dewire.com> (raw)
In-Reply-To: <1228252816-5987-1-git-send-email-robin.rosenberg@dewire.com>
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
---
.../exttst/org/spearce/jgit/lib/SpeedTestBase.java | 12 +++++--
.../src/org/spearce/jgit/lib/Repository.java | 31 +++++++++++++-------
2 files changed, 28 insertions(+), 15 deletions(-)
diff --git a/org.spearce.jgit.test/exttst/org/spearce/jgit/lib/SpeedTestBase.java b/org.spearce.jgit.test/exttst/org/spearce/jgit/lib/SpeedTestBase.java
index 11f7439..36a5e0e 100644
--- a/org.spearce.jgit.test/exttst/org/spearce/jgit/lib/SpeedTestBase.java
+++ b/org.spearce.jgit.test/exttst/org/spearce/jgit/lib/SpeedTestBase.java
@@ -72,10 +72,14 @@
protected void prepare(String[] refcmd) throws Exception {
try {
BufferedReader bufferedReader = new BufferedReader(new FileReader("kernel.ref"));
- kernelrepo = bufferedReader.readLine();
- bufferedReader.close();
- timeNativeGit(kernelrepo, refcmd);
- nativeTime = timeNativeGit(kernelrepo, refcmd);
+ try {
+ kernelrepo = bufferedReader.readLine();
+ bufferedReader.close();
+ timeNativeGit(kernelrepo, refcmd);
+ nativeTime = timeNativeGit(kernelrepo, refcmd);
+ } finally {
+ bufferedReader.close();
+ }
} catch (Exception e) {
System.out.println("Create a file named kernel.ref and put the path to the Linux kernels repository there");
throw e;
diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java b/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
index b54afd5..da1494f 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
@@ -144,10 +144,13 @@ public Repository(final File d) throws IOException {
final File altFile = FS.resolve(objectsDir, "info/alternates");
if (altFile.exists()) {
BufferedReader ar = new BufferedReader(new FileReader(altFile));
- for (String alt=ar.readLine(); alt!=null; alt=ar.readLine()) {
- readObjectsDirs(FS.resolve(objectsDir, alt), ret);
+ try {
+ for (String alt=ar.readLine(); alt!=null; alt=ar.readLine()) {
+ readObjectsDirs(FS.resolve(objectsDir, alt), ret);
+ }
+ } catch (Exception e) {
+ ar.close();
}
- ar.close();
}
return ret;
}
@@ -1027,15 +1030,21 @@ public boolean isStGitMode() {
if (isStGitMode()) {
File patchDir = new File(new File(getDirectory(),"patches"),getBranch());
BufferedReader apr = new BufferedReader(new FileReader(new File(patchDir,"applied")));
- for (String patchName=apr.readLine(); patchName!=null; patchName=apr.readLine()) {
- File topFile = new File(new File(new File(patchDir,"patches"), patchName), "top");
- BufferedReader tfr = new BufferedReader(new FileReader(topFile));
- String objectId = tfr.readLine();
- ObjectId id = ObjectId.fromString(objectId);
- ret.put(id, new StGitPatch(patchName, id));
- tfr.close();
+ try {
+ for (String patchName=apr.readLine(); patchName!=null; patchName=apr.readLine()) {
+ File topFile = new File(new File(new File(patchDir,"patches"), patchName), "top");
+ BufferedReader tfr = new BufferedReader(new FileReader(topFile));
+ try {
+ String objectId = tfr.readLine();
+ ObjectId id = ObjectId.fromString(objectId);
+ ret.put(id, new StGitPatch(patchName, id));
+ } finally {
+ tfr.close();
+ }
+ }
+ } finally {
+ apr.close();
}
- apr.close();
}
return ret;
}
--
1.6.0.3.640.g6331a
next prev parent reply other threads:[~2008-12-02 21:21 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-02 21:20 [JGIT PATCH 1/2] Close a forgotten reference to the HEAD ref Robin Rosenberg
2008-12-02 21:20 ` Robin Rosenberg [this message]
2008-12-02 21:41 ` [JGIT PATCH 2/2 v2] Improve closing of files in error situations Robin Rosenberg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1228252816-5987-2-git-send-email-robin.rosenberg@dewire.com \
--to=robin.rosenberg@dewire.com \
--cc=git@vger.kernel.org \
--cc=spearce@spearce.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).