ByteArrayOutputStream bosPlain = new ByteArrayOutputStream();
ByteArrayOutputStream bosCompressed = new ByteArrayOutputStream();
GZIPOutputStream gos = new GZIPOutputStream(bosCompressed);
TeeOutputStream tos = new TeeOutputStream(bosPlain, gos);
ObjectOutputStream oos = new ObjectOutputStream(new BufferedOutputStream(tos));
writeChangesToStream(changes, oos);