Skip to content

Commit

Permalink
end() for deflater and inflater.
Browse files Browse the repository at this point in the history
  • Loading branch information
NathanSweet committed Sep 21, 2014
1 parent 86aecf1 commit a306471
Showing 1 changed file with 14 additions and 7 deletions.
21 changes: 14 additions & 7 deletions src/com/esotericsoftware/kryo/serializers/DeflateSerializer.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,24 +25,31 @@ public DeflateSerializer (Serializer serializer) {
}

public void write (Kryo kryo, Output output, Object object) {
Deflater deflater = new Deflater(compressionLevel, noHeaders);
OutputChunked outputChunked = new OutputChunked(output, 256);
DeflaterOutputStream deflaterStream = new DeflaterOutputStream(outputChunked, deflater);
Output deflaterOutput = new Output(deflaterStream, 256);
serializer.write(kryo, deflaterOutput, object);
deflaterOutput.flush();
Deflater deflater = new Deflater(compressionLevel, noHeaders);
try {
DeflaterOutputStream deflaterStream = new DeflaterOutputStream(outputChunked, deflater);
Output deflaterOutput = new Output(deflaterStream, 256);
serializer.write(kryo, deflaterOutput, object);
deflaterOutput.flush();
deflaterStream.finish();
} catch (IOException ex) {
throw new KryoException(ex);
} finally {
deflater.end();
}
outputChunked.endChunks();
}

public Object read (Kryo kryo, Input input, Class type) {
// The inflater would read from input beyond the compressed bytes if chunked enoding wasn't used.
InflaterInputStream inflaterStream = new InflaterInputStream(new InputChunked(input, 256), new Inflater(noHeaders));
return serializer.read(kryo, new Input(inflaterStream, 256), type);
Inflater inflater = new Inflater(noHeaders);
try {
InflaterInputStream inflaterStream = new InflaterInputStream(new InputChunked(input, 256), inflater);
return serializer.read(kryo, new Input(inflaterStream, 256), type);
} finally {
inflater.end();
}
}

public void setNoHeaders (boolean noHeaders) {
Expand Down

0 comments on commit a306471

Please sign in to comment.