Return-Path: X-Original-To: apmail-cassandra-commits-archive@www.apache.org Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 7BEB611779 for ; Sat, 26 Apr 2014 02:57:26 +0000 (UTC) Received: (qmail 94898 invoked by uid 500); 26 Apr 2014 02:57:26 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 94638 invoked by uid 500); 26 Apr 2014 02:57:25 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 94620 invoked by uid 99); 26 Apr 2014 02:57:24 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 26 Apr 2014 02:57:24 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 26F9A952BA9; Sat, 26 Apr 2014 02:57:24 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: dbrosius@apache.org To: commits@cassandra.apache.org Date: Sat, 26 Apr 2014 02:57:24 -0000 Message-Id: <6f77ee4dd226461e8543058a08ec0685@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [1/2] git commit: buffer writing of compression meta data, and make sure stream is closed Repository: cassandra Updated Branches: refs/heads/trunk ca9c4b468 -> 7000efa21 buffer writing of compression meta data, and make sure stream is closed Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fccc123a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fccc123a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fccc123a Branch: refs/heads/trunk Commit: fccc123af1a1f120fd86db65dfa09fe4c85a18d6 Parents: a6efffe Author: Dave Brosius Authored: Fri Apr 25 22:56:12 2014 -0400 Committer: Dave Brosius Committed: Fri Apr 25 22:56:12 2014 -0400 ---------------------------------------------------------------------- .../io/compress/CompressionMetadata.java | 23 ++++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/fccc123a/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java b/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java index 8cd8c9f..abb067f 100644 --- a/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java +++ b/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java @@ -17,6 +17,7 @@ */ package org.apache.cassandra.io.compress; +import java.io.BufferedOutputStream; import java.io.DataInput; import java.io.DataInputStream; import java.io.DataOutput; @@ -49,6 +50,7 @@ import org.apache.cassandra.io.sstable.Descriptor; import org.apache.cassandra.io.util.DataOutputPlus; import org.apache.cassandra.io.util.FileUtils; import org.apache.cassandra.io.util.Memory; +import org.apache.cassandra.utils.FBUtilities; import org.apache.cassandra.utils.Pair; /** @@ -329,7 +331,7 @@ public class CompressionMetadata */ public long chunkOffsetBy(int chunkIndex) { - return offsets.getLong(chunkIndex * 8); + return offsets.getLong(chunkIndex * 8L); } /** @@ -343,12 +345,19 @@ public class CompressionMetadata public void close(long dataLength, int chunks) throws IOException { - final DataOutputStream out = new DataOutputStream(new FileOutputStream(filePath)); - assert chunks == count; - writeHeader(out, dataLength, chunks); - for (int i = 0 ; i < count ; i++) - out.writeLong(offsets.getLong(i * 8)); - out.close(); + DataOutputStream out = null; + try + { + out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(filePath))); + assert chunks == count; + writeHeader(out, dataLength, chunks); + for (int i = 0 ; i < count ; i++) + out.writeLong(offsets.getLong(i * 8)); + } + finally + { + FileUtils.closeQuietly(out); + } } }