SóProvas


ID
1306498
Banca
CESPE / CEBRASPE
Órgão
ANATEL
Ano
2014
Provas
Disciplina
Programação
Assuntos

No que se refere à arquitetura e à programação Java, julgue o item que se segue.


Utilizando-se a ferramenta de análise estática Findbugs, não será possível identificar, no trecho de código a seguir, o tipo de erro ocorrido. Tal erro só pode ser detectado em tempo de execução, quando a função foundType() for invocada.
public String foundType( ) {
return this.foundType( );
}

Alternativas
Comentários
  • Questão errada! O Findbugs só trabalha sobre os bytecodes (não no código-fonte)

  • O FindBugs utiliza análise estática para inspecionar o bytecode de Java em busca destes padrões.

    http://codigofonte.uol.com.br/ferramentas/findbugs

  • É possível identificar a recursividade da chamada estaticamente ( o método foundType() executa ele mesmo sem condição de parada )
  • A questão versa sobre a ferramenta de análise estática de código Findbugs.

    Inicialmente, cumpre relembrar que, no âmbito de uma plataforma padrão JAVA, o código-fonte é compilado, gerando bytecodes, os quais, por sua vez, são interpretados pela Máquina Virtual Java (Java Virtual Machine).

    Conforme site oficial do Findbugs, essa ferramenta usa análise estática para inspecionar os bytecodes Java, a fim de encontrar ocorrências de padrões de bug [1].

    No trecho de código do enunciado, há um problema de recursividade infinita, pois, ao invocar o método foundType(), esse método será chamado recursivamente sem condição de parada, entrando em um loop infinito

    Todavia, ao contrário do que a banca afirmou na questão, a ferramenta Findbugs detecta o padrão de bug "Loop infinito recursivo" (IL: An apparent infinite recursive loop - IL_INFINITE_RECURSIVE_LOOP) a nível de análise estática [1]

    Logo, questão INCORRETA.


    Referências:

    FindBugs. FindBugs™ - Find Bugs in Java Programs. Disponível em: site oficial do Findbugs. Acesso em: 8/6/2021.


    Gabarito do Professor: ERRADO.