Skip to content

Commit

Permalink
HADOOP-14097. Remove Java6 specific code from GzipCodec.java. Contrib…
Browse files Browse the repository at this point in the history
…uted by Elek, Marton.
  • Loading branch information
aajisaka committed Feb 24, 2017
1 parent e60c654 commit 50decd3
Showing 1 changed file with 0 additions and 59 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,6 @@ public class GzipCodec extends DefaultCodec {
protected static class GzipOutputStream extends CompressorStream {

private static class ResetableGZIPOutputStream extends GZIPOutputStream {
private static final int TRAILER_SIZE = 8;
public static final String JVMVersion= System.getProperty("java.version");
private static final boolean HAS_BROKEN_FINISH =
(IBM_JAVA && JVMVersion.contains("1.6.0"));

public ResetableGZIPOutputStream(OutputStream out) throws IOException {
super(out);
Expand All @@ -57,61 +53,6 @@ public ResetableGZIPOutputStream(OutputStream out) throws IOException {
public void resetState() throws IOException {
def.reset();
}

/**
* Override this method for HADOOP-8419.
* Override because IBM implementation calls def.end() which
* causes problem when reseting the stream for reuse.
*
*/
@Override
public void finish() throws IOException {
if (HAS_BROKEN_FINISH) {
if (!def.finished()) {
def.finish();
while (!def.finished()) {
int i = def.deflate(this.buf, 0, this.buf.length);
if ((def.finished()) && (i <= this.buf.length - TRAILER_SIZE)) {
writeTrailer(this.buf, i);
i += TRAILER_SIZE;
out.write(this.buf, 0, i);

return;
}
if (i > 0) {
out.write(this.buf, 0, i);
}
}

byte[] arrayOfByte = new byte[TRAILER_SIZE];
writeTrailer(arrayOfByte, 0);
out.write(arrayOfByte);
}
} else {
super.finish();
}
}

/** re-implement for HADOOP-8419 because the relative method in jdk is invisible */
private void writeTrailer(byte[] paramArrayOfByte, int paramInt)
throws IOException {
writeInt((int)this.crc.getValue(), paramArrayOfByte, paramInt);
writeInt(this.def.getTotalIn(), paramArrayOfByte, paramInt + 4);
}

/** re-implement for HADOOP-8419 because the relative method in jdk is invisible */
private void writeInt(int paramInt1, byte[] paramArrayOfByte, int paramInt2)
throws IOException {
writeShort(paramInt1 & 0xFFFF, paramArrayOfByte, paramInt2);
writeShort(paramInt1 >> 16 & 0xFFFF, paramArrayOfByte, paramInt2 + 2);
}

/** re-implement for HADOOP-8419 because the relative method in jdk is invisible */
private void writeShort(int paramInt1, byte[] paramArrayOfByte, int paramInt2)
throws IOException {
paramArrayOfByte[paramInt2] = (byte)(paramInt1 & 0xFF);
paramArrayOfByte[(paramInt2 + 1)] = (byte)(paramInt1 >> 8 & 0xFF);
}
}

public GzipOutputStream(OutputStream out) throws IOException {
Expand Down

0 comments on commit 50decd3

Please sign in to comment.