/** Writes the {@code Context} to the given state checkpoint output. */ protected void writeToState(StateBackend.CheckpointStateOutputView out) throws IOException { keySerializer.serialize(key, out); windowSerializer.serialize(window, out); out.writeLong(watermarkTimer); out.writeLong(processingTimeTimer); byte[] serializedState = InstantiationUtil.serializeObject(state); out.writeInt(serializedState.length); out.write(serializedState, 0, serializedState.length); MultiplexingStreamRecordSerializer<IN> recordSerializer = new MultiplexingStreamRecordSerializer<>(inputSerializer); out.writeInt(windowBuffer.size()); for (StreamRecord<IN> element : windowBuffer.getElements()) { recordSerializer.serialize(element, out); } }