From 1bdfd3b3aab878a687cb10f52fcebcc9de61408e Mon Sep 17 00:00:00 2001 From: Matthias Sohn Date: Tue, 11 Mar 2014 16:25:25 +0100 Subject: [PATCH] [findBugs] Ensure streams are closed in a finally block Change-Id: I3137eba00d6eba96ca9051b6687fcf62e0871bcc Signed-off-by: Matthias Sohn --- .../eclipse/jgit/internal/storage/file/GC.java | 16 +++++++++------- .../eclipse/jgit/notes/DefaultNoteMerger.java | 10 +++++++--- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java index e06ff65ee..6c19b7b7f 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java @@ -714,26 +714,27 @@ public class GC { JGitText.get().cannotCreateIndexfile, tmpIdx.getPath())); // write the packfile - @SuppressWarnings("resource" /* java 7 */) - FileChannel channel = new FileOutputStream(tmpPack).getChannel(); + FileOutputStream fos = new FileOutputStream(tmpPack); + FileChannel channel = fos.getChannel(); OutputStream channelStream = Channels.newOutputStream(channel); try { pw.writePack(pm, pm, channelStream); } finally { channel.force(true); channelStream.close(); - channel.close(); + fos.close(); } // write the packindex - FileChannel idxChannel = new FileOutputStream(tmpIdx).getChannel(); + fos = new FileOutputStream(tmpIdx); + FileChannel idxChannel = fos.getChannel(); OutputStream idxStream = Channels.newOutputStream(idxChannel); try { pw.writeIndex(idxStream); } finally { idxChannel.force(true); idxStream.close(); - idxChannel.close(); + fos.close(); } if (pw.prepareBitmapIndex(pm)) { @@ -745,14 +746,15 @@ public class GC { JGitText.get().cannotCreateIndexfile, tmpBitmapIdx.getPath())); - idxChannel = new FileOutputStream(tmpBitmapIdx).getChannel(); + fos = new FileOutputStream(tmpBitmapIdx); + idxChannel = fos.getChannel(); idxStream = Channels.newOutputStream(idxChannel); try { pw.writeBitmapIndex(idxStream); } finally { idxChannel.force(true); idxStream.close(); - idxChannel.close(); + fos.close(); } } diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/notes/DefaultNoteMerger.java b/org.eclipse.jgit/src/org/eclipse/jgit/notes/DefaultNoteMerger.java index 9624e49e9..db4944851 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/notes/DefaultNoteMerger.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/notes/DefaultNoteMerger.java @@ -82,8 +82,12 @@ public class DefaultNoteMerger implements NoteMerger { ObjectLoader lt = reader.open(theirs.getData()); UnionInputStream union = new UnionInputStream(lo.openStream(), lt.openStream()); - ObjectId noteData = inserter.insert(Constants.OBJ_BLOB, - lo.getSize() + lt.getSize(), union); - return new Note(ours, noteData); + try { + ObjectId noteData = inserter.insert(Constants.OBJ_BLOB, + lo.getSize() + lt.getSize(), union); + return new Note(ours, noteData); + } finally { + union.close(); + } } }