private void checkPasswordExpiration() {
		try {
			if (!serverHandle.canSetPassword()) {
				return;
			}
			final long expiration = serverHandle.getPasswordExpiration();
			if (expiration >= 0) {
				String msg;
				if (expiration == 0) {
					msg = "Your server password has expired!\nPlease change immediately.";
				}
				else {
					long hours = (expiration + HOUR - 1) / HOUR;
					msg = "Your password will expire in less than " + hours +
						" hour(s)!\nPlease change immediately.";
				}
				if (SystemUtilities.isInHeadlessMode()) {
					Msg.warn(this, msg);
				}
				else if (OptionDialog.OPTION_ONE == OptionDialog.showOptionDialog(null,
					"Password Change Required", msg, "OK", OptionDialog.WARNING_MESSAGE)) { // modal
					try {
						ClientUtil.changePassword(null, serverHandle, serverInfoStr);
					}
					catch (IOException e) {
						Msg.showError(ServerConnectTask.class, null, "Password Change Failed",
							"Password changed failed due to server error!", e);
					}
				}
			}
		}
		catch (Exception e) {
			// getPasswordExpiration method added without changing interface version
			// Ignore marshalling error which may occur
		}
	}
Attempt to connect or re-connect to the server.
@return true if connect successful, false if cancelled by user
@throws NotConnectedException if connect failed (error will be displayed to user)
Ghidra/Framework/FileSystem/src/main/java/ghidra/framework/client/RepositoryServerAdapter.java