Fixed after review:
- Remove synchronized by lock
- Remove isClosed method