DIRAPI-342: Unbind/close breaks connection

* Fix race condition in `sessionClosed()` callback: make synchronized and check if same session is closed
* Fix race condition in `setCloseListener()` callback: make synchronized and check if same session is closed
* Move duplicated code from `unbind()` and `sessionClosed()` to `close()`
* Remove `connected` flag, use information from session instead
* Remove no longer required lock
* Reuse isConnected() method where possible
1 file changed