Browse Source

[findBugs] Ensure streams are closed in a finally block

Change-Id: I3137eba00d6eba96ca9051b6687fcf62e0871bcc
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
stable-3.3
Matthias Sohn 11 years ago
parent
commit
1bdfd3b3aa
  1. 16
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
  2. 4
      org.eclipse.jgit/src/org/eclipse/jgit/notes/DefaultNoteMerger.java

16
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java

@ -714,26 +714,27 @@ public class GC {
JGitText.get().cannotCreateIndexfile, tmpIdx.getPath())); JGitText.get().cannotCreateIndexfile, tmpIdx.getPath()));
// write the packfile // write the packfile
@SuppressWarnings("resource" /* java 7 */) FileOutputStream fos = new FileOutputStream(tmpPack);
FileChannel channel = new FileOutputStream(tmpPack).getChannel(); FileChannel channel = fos.getChannel();
OutputStream channelStream = Channels.newOutputStream(channel); OutputStream channelStream = Channels.newOutputStream(channel);
try { try {
pw.writePack(pm, pm, channelStream); pw.writePack(pm, pm, channelStream);
} finally { } finally {
channel.force(true); channel.force(true);
channelStream.close(); channelStream.close();
channel.close(); fos.close();
} }
// write the packindex // write the packindex
FileChannel idxChannel = new FileOutputStream(tmpIdx).getChannel(); fos = new FileOutputStream(tmpIdx);
FileChannel idxChannel = fos.getChannel();
OutputStream idxStream = Channels.newOutputStream(idxChannel); OutputStream idxStream = Channels.newOutputStream(idxChannel);
try { try {
pw.writeIndex(idxStream); pw.writeIndex(idxStream);
} finally { } finally {
idxChannel.force(true); idxChannel.force(true);
idxStream.close(); idxStream.close();
idxChannel.close(); fos.close();
} }
if (pw.prepareBitmapIndex(pm)) { if (pw.prepareBitmapIndex(pm)) {
@ -745,14 +746,15 @@ public class GC {
JGitText.get().cannotCreateIndexfile, JGitText.get().cannotCreateIndexfile,
tmpBitmapIdx.getPath())); tmpBitmapIdx.getPath()));
idxChannel = new FileOutputStream(tmpBitmapIdx).getChannel(); fos = new FileOutputStream(tmpBitmapIdx);
idxChannel = fos.getChannel();
idxStream = Channels.newOutputStream(idxChannel); idxStream = Channels.newOutputStream(idxChannel);
try { try {
pw.writeBitmapIndex(idxStream); pw.writeBitmapIndex(idxStream);
} finally { } finally {
idxChannel.force(true); idxChannel.force(true);
idxStream.close(); idxStream.close();
idxChannel.close(); fos.close();
} }
} }

4
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()); ObjectLoader lt = reader.open(theirs.getData());
UnionInputStream union = new UnionInputStream(lo.openStream(), UnionInputStream union = new UnionInputStream(lo.openStream(),
lt.openStream()); lt.openStream());
try {
ObjectId noteData = inserter.insert(Constants.OBJ_BLOB, ObjectId noteData = inserter.insert(Constants.OBJ_BLOB,
lo.getSize() + lt.getSize(), union); lo.getSize() + lt.getSize(), union);
return new Note(ours, noteData); return new Note(ours, noteData);
} finally {
union.close();
}
} }
} }

Loading…
Cancel
Save