Boa tarde,
Estou tendo dificuldades com um código (resumido abaixo), pois o mesmo está executando as condicionais if/else antes de terminar de executar a função [color=red]triggerCaptcha(status, rcd, true)[/color];
[code]
protected static Map<instanciaUsuario, BotEye> _activeEyes;
public boolean reportStatus (…)
{
…
triggerCaptcha(status, rcd, true); //essa função é executada porém antes de terminar completamente o código já executa o if seguinte.
if (condicao for verdadeira) //esse if eu quero que execute apenas quando de fato toda e qualquer operação anterior já tiver sido concluída.
{
	logout();
}
else
{
	...
}
return true
}[/code]
aqui alguns detalhes da função triggercaptcha, que exibe um html com algumas informações e um captcha para ser preenchido [color=red]em até 30seg[/color] (valor da variável [color=green]seconds[/color]).
private static void triggerCaptcha(usuario, rcd, Effect)
{	
	HtmlMessage.setHtml("msg do html contendo o captcha");
	usuario.sendPacket( HtmlMessage );
	if (Effect)
	{
		usuario.setIsImmobilized(true);
		usuario.setIsInvul(true);
		_activeEyes.put(usuario, new BotEye(usuario, rcd, seconds));
        }
}
detalhes do boteye.
[code]private final static class BotEye implements Runnable
{
    private ScheduledFuture<?> _task;
    private int _delay;
    public ReportedCharData _rcd;
    private instanciaUsuario _usuario;
    public BotEye(usuario, rcd, delay) {
        _usuario = usuario;
        _delay = delay;
        _rcd = rcd;
        run();
    }
    @Override
    public void run() {
        if (_delay < 1) {
        	blablabla...
            return;
        }
        handleTick();
        _task = ThreadPoolManager.getInstance().scheduleGeneral(this, 1000);
        _delay--;
    }
    public void cancel() {
        if (_task != null) {
            _task.cancel(true);
        }
    }
private void handleTick() {
        switch (_delay) {
            case 30:
            	_usuario.sendMessage("falta 30seg");
            	break;
            case 10:
            	_usuario.sendMessage("falta 10seg");
            	break;
            case 5:
            case 4:
            case 3:
            case 2:
            case 1:
            	_usuario.sendMessage("falta 1seg");
                break;
        }
    }
}[/code]
Como faço para que de fato as condições if/else sejam apenas executadas após o usuário terminar de responder o captcha??