diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectWriter.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectWriter.java index 60e85eb57..b75328330 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectWriter.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectWriter.java @@ -78,8 +78,6 @@ public class ObjectWriter { private final MessageDigest md; - private final Deflater def; - /** * Construct an Object writer for the specified repository * @param d @@ -88,7 +86,6 @@ public ObjectWriter(final Repository d) { r = d; buf = new byte[8192]; md = Constants.newMessageDigest(); - def = new Deflater(r.getConfig().getCore().getCompression()); } /** @@ -309,6 +306,7 @@ ObjectId writeObject(final int type, long len, final InputStream is, final DeflaterOutputStream deflateStream; final FileOutputStream fileStream; ObjectId id = null; + Deflater def = null; if (store) { t = File.createTempFile("noz", null, r.getObjectsDirectory()); @@ -320,7 +318,7 @@ ObjectId writeObject(final int type, long len, final InputStream is, md.reset(); if (store) { - def.reset(); + def = new Deflater(r.getConfig().getCore().getCompression()); deflateStream = new DeflaterOutputStream(fileStream, def); } else deflateStream = null; @@ -374,6 +372,9 @@ ObjectId writeObject(final int type, long len, final InputStream is, t.delete(); } } + if (def != null) { + def.end(); + } } if (t == null)