You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by sa...@apache.org on 2014/05/17 20:09:13 UTC
svn commit: r1595523 - in
/hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common:
CHANGES.txt
src/main/java/org/apache/hadoop/io/compress/bzip2/CBZip2InputStream.java
Author: sandy
Date: Sat May 17 18:09:13 2014
New Revision: 1595523
URL: http://svn.apache.org/r1595523
Log:
HADOOP-10614. CBZip2InputStream is not threadsafe (Xiangrui Meng via Sandy Ryza)
Modified:
hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/CHANGES.txt
hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/bzip2/CBZip2InputStream.java
Modified: hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/CHANGES.txt?rev=1595523&r1=1595522&r2=1595523&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/CHANGES.txt (original)
+++ hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/CHANGES.txt Sat May 17 18:09:13 2014
@@ -55,6 +55,9 @@ Release 2.5.0 - UNRELEASED
HADOOP-10609. .gitignore should ignore .orig and .rej files. (kasha)
+ HADOOP-10614. CBZip2InputStream is not threadsafe (Xiangrui Meng via
+ Sandy Ryza)
+
OPTIMIZATIONS
BUG FIXES
Modified: hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/bzip2/CBZip2InputStream.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/bzip2/CBZip2InputStream.java?rev=1595523&r1=1595522&r2=1595523&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/bzip2/CBZip2InputStream.java (original)
+++ hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/bzip2/CBZip2InputStream.java Sat May 17 18:09:13 2014
@@ -129,7 +129,7 @@ public class CBZip2InputStream extends I
private int computedBlockCRC, computedCombinedCRC;
private boolean skipResult = false;// used by skipToNextMarker
- private static boolean skipDecompression = false;
+ private boolean skipDecompression = false;
// Variables used by setup* methods exclusively
@@ -281,12 +281,18 @@ public class CBZip2InputStream extends I
*/
public CBZip2InputStream(final InputStream in, READ_MODE readMode)
throws IOException {
+ this(in, readMode, false);
+ }
+
+ private CBZip2InputStream(final InputStream in, READ_MODE readMode, boolean skipDecompression)
+ throws IOException {
super();
int blockSize = 0X39;// i.e 9
this.blockSize100k = blockSize - '0';
this.in = new BufferedInputStream(in, 1024 * 9);// >1 MB buffer
this.readMode = readMode;
+ this.skipDecompression = skipDecompression;
if (readMode == READ_MODE.CONTINUOUS) {
currentState = STATE.START_BLOCK_STATE;
lazyInitialization = (in.available() == 0)?true:false;
@@ -316,11 +322,7 @@ public class CBZip2InputStream extends I
*
*/
public static long numberOfBytesTillNextMarker(final InputStream in) throws IOException{
- CBZip2InputStream.skipDecompression = true;
- CBZip2InputStream anObject = null;
-
- anObject = new CBZip2InputStream(in, READ_MODE.BYBLOCK);
-
+ CBZip2InputStream anObject = new CBZip2InputStream(in, READ_MODE.BYBLOCK, true);
return anObject.getProcessedByteCount();
}
@@ -397,7 +399,7 @@ public class CBZip2InputStream extends I
if(skipDecompression){
changeStateToProcessABlock();
- CBZip2InputStream.skipDecompression = false;
+ skipDecompression = false;
}
final int hi = offs + len;