* [JGIT PATCH 1/2] Close a forgotten reference to the HEAD ref.
@ 2008-12-02 21:20 Robin Rosenberg
2008-12-02 21:20 ` [JGIT PATCH 2/2] Improve closing of files in error situations Robin Rosenberg
0 siblings, 1 reply; 3+ messages in thread
From: Robin Rosenberg @ 2008-12-02 21:20 UTC (permalink / raw)
To: spearce; +Cc: git, Robin Rosenberg
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
---
.../src/org/spearce/jgit/lib/Repository.java | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
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 c953531..b54afd5 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
@@ -989,9 +989,10 @@ public Ref peel(final Ref ref) {
* @return true if HEAD points to a StGit patch.
*/
public boolean isStGitMode() {
+ File file = new File(getDirectory(), "HEAD");
+ BufferedReader reader = null;
try {
- File file = new File(getDirectory(), "HEAD");
- BufferedReader reader = new BufferedReader(new FileReader(file));
+ reader = new BufferedReader(new FileReader(file));
String string = reader.readLine();
if (!string.startsWith("ref: refs/heads/"))
return false;
@@ -1007,6 +1008,13 @@ public boolean isStGitMode() {
} catch (IOException e) {
e.printStackTrace();
return false;
+ } finally {
+ try {
+ if (reader != null)
+ reader.close();
+ } catch (IOException e1) {
+ // nothing to do here
+ }
}
}
--
1.6.0.3.640.g6331a
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [JGIT PATCH 2/2] Improve closing of files in error situations.
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
2008-12-02 21:41 ` [JGIT PATCH 2/2 v2] " Robin Rosenberg
0 siblings, 1 reply; 3+ messages in thread
From: Robin Rosenberg @ 2008-12-02 21:20 UTC (permalink / raw)
To: spearce; +Cc: git, Robin Rosenberg
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
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [JGIT PATCH 2/2 v2] Improve closing of files in error situations.
2008-12-02 21:20 ` [JGIT PATCH 2/2] Improve closing of files in error situations Robin Rosenberg
@ 2008-12-02 21:41 ` Robin Rosenberg
0 siblings, 0 replies; 3+ messages in thread
From: Robin Rosenberg @ 2008-12-02 21:41 UTC (permalink / raw)
To: spearce; +Cc: git, Robin Rosenberg
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
---
.../exttst/org/spearce/jgit/lib/SpeedTestBase.java | 12 +++++--
.../dircache/DirCacheCGitCompatabilityTest.java | 24 ++++++++++-----
.../org/spearce/jgit/lib/RepositoryTestCase.java | 27 +++++++++++------
.../src/org/spearce/jgit/lib/GitIndex.java | 2 +-
.../src/org/spearce/jgit/lib/Repository.java | 31 +++++++++++++-------
5 files changed, 63 insertions(+), 33 deletions(-)
I was a bit quick there. This is an extended version of patch 2/2.
-- robin
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.test/tst/org/spearce/jgit/dircache/DirCacheCGitCompatabilityTest.java b/org.spearce.jgit.test/tst/org/spearce/jgit/dircache/DirCacheCGitCompatabilityTest.java
index b052686..42832fe 100644
--- a/org.spearce.jgit.test/tst/org/spearce/jgit/dircache/DirCacheCGitCompatabilityTest.java
+++ b/org.spearce.jgit.test/tst/org/spearce/jgit/dircache/DirCacheCGitCompatabilityTest.java
@@ -146,10 +146,14 @@ private File pathOf(final String name) {
final LinkedHashMap<String, CGitIndexRecord> r = new LinkedHashMap<String, CGitIndexRecord>();
final BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(pathOf("gitgit.lsfiles")), "UTF-8"));
- String line;
- while ((line = br.readLine()) != null) {
- final CGitIndexRecord cr = new CGitIndexRecord(line);
- r.put(cr.path, cr);
+ try {
+ String line;
+ while ((line = br.readLine()) != null) {
+ final CGitIndexRecord cr = new CGitIndexRecord(line);
+ r.put(cr.path, cr);
+ }
+ } finally {
+ br.close();
}
return r;
}
@@ -158,10 +162,14 @@ private File pathOf(final String name) {
final LinkedHashMap<String, CGitLsTreeRecord> r = new LinkedHashMap<String, CGitLsTreeRecord>();
final BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(pathOf("gitgit.lstree")), "UTF-8"));
- String line;
- while ((line = br.readLine()) != null) {
- final CGitLsTreeRecord cr = new CGitLsTreeRecord(line);
- r.put(cr.path, cr);
+ try {
+ String line;
+ while ((line = br.readLine()) != null) {
+ final CGitLsTreeRecord cr = new CGitLsTreeRecord(line);
+ r.put(cr.path, cr);
+ }
+ } finally {
+ br.close();
}
return r;
}
diff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/RepositoryTestCase.java b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/RepositoryTestCase.java
index 22bf395..8937145 100644
--- a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/RepositoryTestCase.java
+++ b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/RepositoryTestCase.java
@@ -152,14 +152,20 @@ private static void reportDeleteFailure(final String name,
protected static void copyFile(final File src, final File dst)
throws IOException {
final FileInputStream fis = new FileInputStream(src);
- final FileOutputStream fos = new FileOutputStream(dst);
- final byte[] buf = new byte[4096];
- int r;
- while ((r = fis.read(buf)) > 0) {
- fos.write(buf, 0, r);
+ try {
+ final FileOutputStream fos = new FileOutputStream(dst);
+ try {
+ final byte[] buf = new byte[4096];
+ int r;
+ while ((r = fis.read(buf)) > 0) {
+ fos.write(buf, 0, r);
+ }
+ } finally {
+ fos.close();
+ }
+ } finally {
+ fis.close();
}
- fis.close();
- fos.close();
}
protected File writeTrashFile(final String name, final String data)
@@ -170,8 +176,11 @@ protected File writeTrashFile(final String name, final String data)
throw new Error("Could not create directory " + tf.getParentFile());
final OutputStreamWriter fw = new OutputStreamWriter(
new FileOutputStream(tf), "UTF-8");
- fw.write(data);
- fw.close();
+ try {
+ fw.write(data);
+ } finally {
+ fw.close();
+ }
return tf;
}
diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/GitIndex.java b/org.spearce.jgit/src/org/spearce/jgit/lib/GitIndex.java
index bafddef..7ff6754 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/lib/GitIndex.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/GitIndex.java
@@ -547,8 +547,8 @@ public boolean isModified(File wd, boolean forceContentCheck) {
try {
InputStream is = new FileInputStream(file);
- ObjectWriter objectWriter = new ObjectWriter(db);
try {
+ ObjectWriter objectWriter = new ObjectWriter(db);
ObjectId newId = objectWriter.computeBlobSha1(file
.length(), is);
boolean ret = !newId.equals(sha1);
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
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-12-02 21:42 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-12-02 21:20 [JGIT PATCH 1/2] Close a forgotten reference to the HEAD ref Robin Rosenberg
2008-12-02 21:20 ` [JGIT PATCH 2/2] Improve closing of files in error situations Robin Rosenberg
2008-12-02 21:41 ` [JGIT PATCH 2/2 v2] " Robin Rosenberg
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).