@Override protected void finalize() throws Throwable { try { if(! closed) { // Create the leak description final Throwable t = ControllerClientMessages.MESSAGES.controllerClientNotClosed(); t.setStackTrace(allocationStackTrace); ControllerClientLogger.ROOT_LOGGER.leakedControllerClient(t); // Close StreamUtils.safeClose(this); } } finally { super.finalize(); } }