### Question:
UnboundedFeedbackLogger implements FeedbackLogger<T> { @Override public void commit() { try { flushToKeyedStateOutputStream(); } catch (IOException e) { throw new RuntimeException(e); } finally { keyGroupStreams.clear(); IOUtils.closeQuietly(snapshotLease); snapshotLease = null; keyedStateOutputStream = null; } } UnboundedFeedbackLogger(
      Supplier<KeyGroupStream<T>> supplier,
      ToIntFunction<T> keyGroupAssigner,
      CheckpointedStreamOperations ops,
      TypeSerializer<T> serializer); @Override void startLogging(OutputStream keyedStateCheckpointOutputStream); @Override void append(T message); @Override void commit(); void replyLoggedEnvelops(InputStream rawKeyedStateInputs, FeedbackConsumer<T> consumer); @Override void close();  }### Answer:
@Test(expected = IllegalStateException.class) public void commitWithoutStartLoggingShouldBeIllegal() { UnboundedFeedbackLogger<Integer> logger = instanceUnderTest(128, 1); logger.commit(); }