Sistema de busca de arquivo retorna illegalStateException

Ola pessoal, vou tentar ir direto ao ponto. Tenho um aplicativo que busca arquivos que estão em uma pasta diretório na web e retorna um link para o download. A busca é feita em php em um arquivo fora do app, que retorna um Json para o app gerando o link. O sistema sempre funcionou muito bem, mas de uns dias pra ca começou a retornar um erro estranho, os arquivos antigos ele retorna, mas quando busco arquivos recém enviados o try retorna com erro. Veja o código.

btnBuscar.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        String arquivo = txtLeitor.getText().toString();
        String URL = HOST;

        if(arquivo.isEmpty()){
            Toast.makeText(qr_code.this,"Preencha o campo",Toast.LENGTH_LONG).show();
        }else{
            Ion.with(qr_code.this)
                    .load(URL)
                    .setBodyParameter("arquivo_app", arquivo)
                    .asJsonObject()
                    .setCallback(new FutureCallback<JsonObject>() {
                        @Override
                        public void onCompleted(Exception e, final JsonObject result) {

                            try{
                                //Toast.makeText(qr_code.this,"Arquivo: " + result.get("ARQUIVO").getAsString(), Toast.LENGTH_LONG).show();
                                final String RETORNO = result.get("ARQUIVO").getAsString();
                                if (RETORNO.equals("ARQUIVO_NAO_EXISTE")) {
                                    Toast.makeText(qr_code.this, "O arquivo não existe em nossa base de dados", Toast.LENGTH_LONG).show();
                                }else {
                                    AlertDialog.Builder msgBox = new AlertDialog.Builder(qr_code.this);
                                    msgBox.setTitle("Arquivo Encontrado");
                                    //msgBox.setIcon();
                                    msgBox.setMessage("Confirmar o download do arquivo?");
                                    msgBox.setPositiveButton("Baixar agora", new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialogInterface, int i) {
                                            //vai pro link
                                            String url_destino = "http://portal.aquaload.com.br/";
                                            Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url_destino + RETORNO));
                                            startActivity(browserIntent);
                                            //Toast.makeText(qr_code.this,"Arquivo: " + RETORNO, Toast.LENGTH_LONG).show();
                                        }
                                    });
                                    msgBox.setNegativeButton("Voltar", new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialogInterface, int i) {

                                        }
                                    });
                                    msgBox.show();
                                }

                            }catch (Exception erro){
                                AlertDialog.Builder msgBox = new AlertDialog.Builder(qr_code.this);
                                msgBox.setTitle("ERRO");
                                //msgBox.setIcon();
                                msgBox.setMessage("Aconteceu um erro "+erro);
                                msgBox.setNegativeButton("Voltar", new DialogInterface.OnClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialogInterface, int i) {

                                    }
                                });
                                msgBox.show();
                                //toast
                                //Toast.makeText(qr_code.this,"Sem conexão com o banco de dados, verifique sua internet "+erro,Toast.LENGTH_LONG).show();
                            }
                        }
                    });

        }


    }
});

o erro que o try me retorna é o seguinte: illegalStateException. Busquei no google sobre esse erro e não encontrei nada. Alguem sabe o que pode ser?

Por favor, dizer que “Não encontrou nada no Google” sobre essa exception é impossível.

Signals that a method has been invoked at an illegal or inappropriate time. In other words, the Java environment or Java application is not in an appropriate state for the requested operation.

1 curtida

Sim, encontrei isso no site java, mas não me ajudou muito, ainda estou sem entender como o erro ocorre, pelo que vi é um tanto aleatório o que pode estar ocorrendo, não sei como o java me retornar um erro mais específico, na qual eu possa solucionar isso. Quando disse que não achei nada, estava falando da solução.

O erro acontece em alguns arquivos, não consegui ver um padrão. A maioria dos arquivos funciona normal, outros retorna com esse erro, os que funcionam, sempre que testo funcionam, ou seja, é um erro relacionado ao arquivo provavelmente, então comecei a procurar padrões. Todos os arquivos que estão retornando esse erro foram enviados entre ontem e hoje. Não está relacionado com o tamanho dos arquivos, já que alguns dos arquivos testados são menores que os que retornam. Todos arquivos estão com permissão 0644, todos estão em PDF. Difícil identificar a causa.

Só mais um detalhe, a aplicação web, usa exatamente o mesmo algorítimo e não retornou erro nos arquivos.

para quem quiser ver mais detalhadamente
Aplicação web
http://portal.aquaload.com.br
nela tem um link para o app