oos.writeTo(dos);
dos.close(); // note: closes this, too!
} catch (final IllegalArgumentException e) {
// discard further un-compressed data
// -> if not called, there may be memory leaks!
def.end();
// could not make the value smaller than originally
// -> reset to starting count, write uncompressed
super.count = startCount;
try {
oos.writeTo(this);