Quando você cria regras definidas pelo usuário utilizando os gabaritos das regras, não é possível incluir explicações e exemplos.
Se você desfizer as correspondências localizadas pelas regras na categoria Dependências Cíclicas, as correspondências serão removidas da visualização Detalhes da Revisão de Código. As correspondências não devem ser removidas, mas devem ser atualizadas para um status "Não Resolvido". Para solucionar esse problema, selecione as regras na categoria Dependências Cíclicas e execute uma análise do espaço de trabalho.
Normalmente, você pode resolver um problema de código com uma correção rápida de análise estrutural de duas maneiras: 1) selecionar uma classe existente para a qual possa mover o código problemático ou 2) criar uma nova classe para a qual possa mover o código problemático. Se você escolher a segunda opção, um erro impedirá a conclusão da correção rápida.
Para solucionar esse problema, crie uma nova classe antes de aplicar a correção rápida e selecione essa classe no assistente de refatoração de revisão de código.
A origem contida nos pacotes a seguir não será revisada por algumas das regras de Boas Práticas do J2EE:
1. com.ibm
2. COM.ibm
3. sun
4. sunw
5. java
6. javax
7. org.apache
8. com.sun
9. org.omg
10. org.ietf
11. org.w3c
12. org.xml
Na visualização Revisão de Código, o número da linha nem sempre é exibido para algumas descobertas detectadas pelas regras de Boas Práticas do J2EE. Ao dar um clique duplo na descoberta, você será conduzido para o número correto da linha.
Um caminho do fluxo de dados mostra o histórico de dependência de alterações de dados que levam a um problema realçado por uma descoberta de regra. Os caminhos do fluxo de dados aparecem na guia Caminho. Algumas vezes, os caminhos do fluxo de dados exibem estruturas de dados internos existentes nas classes JSDK ou J2EE. Por exemplo, em vez de declarar que uma variável do tipo java.lang.Vector foi modificada, você verá que a java.lang.Object[]variable foi modificada. Esse é um campo interno da implementação do java.lang.Vector e pode ser embaraçoso ver essas informações privadas exibidas na guia.
Na categoria de regra Princípios do Design, você pode definir a profundidade das regras de complexidade. Por exemplo, você pode definir a regra "Evitar aninhar mais de 1 classe(s)" para "Evitar aninhar mais de 3 classe(s)." Para que a regra funcione corretamente, você deve utilizar um número positivo para a profundidade. Entretanto, as regras de complexidade não asseguram atualmente que a profundidade esteja definida para um número positivo. Para evitar esse problema, não digite uma entrada inválida, como zero ou um número negativo.
Há um problema de codificação quando você cria uma regra a partir de um gabarito utilizando caracteres ASCII não-EUA em seus parâmetros. Isso ocorre, por exemplo, quando um tipo ou método com caracteres locais é selecionado. Devido a esse problema de codificação, quando as regras criadas com essas propriedades e com caracteres ASCII não-EUA são executadas, gera-se uma exceção.
O progresso de Revisão de Código não é relatado adequadamente para regras de Análise Estrutural (ou seja, o diálogo de progresso sempre relata progresso de 100%). Você deve aguardar a conclusão da Revisão de Código.
Às vezes, ao iniciar a Revisão de Código, o botão Iniciar/Parar mostra um ícone que é uma combinação de iniciar e parar.
O quickfix para a regra "Evitar o uso de java.langString.compareTo () para comparar cadeias sensíveis ao código do idioma" sugere duas soluções para corrigir o problema apontado pela regra. A solução que sugere <Utilizar com.ibm.icu.text.Collator> está incorreta. A solução deveria ser <Utilizar java.text.Collator>.
Se você criar uma nova regra com o gabarito da regra do J2EE "Sempre chamar [methodA] após [methodB]" e [methodB] for um construtor por padrão em seu espaço de trabalho, quando a regra for executada em uma revisão de código, ela não produzirá descobertas de regra.
Criar uma nova regra para uma instância específica de objeto a partir da regra do gabarito de boas práticas do J2EE: "Sempre chamar [methodA] após [methodB]" pode produzir descobertas de regras incorretas no próximo caso específico para o qual há uma regra definida. Se selecionar métodos a partir do padrão "Sempre chamar [methodA] após [methodB]" em que, no código J2EE, as instâncias de objeto dos métodos possuem um ciclo de vida superior àquele do servlet que está sendo analisado, você poderá descobrir descobertas de regras incorretas. Por exemplo, considere o código a seguir:
public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
// Algum código aqui.... final ServletOutputStream outStream = response.getOutputStream(); //... Nenhuma chamada para response.flushBuffer depois. }
para o qual você cria a regra: "Sempre chamar ServletResponse.flushBuffer() após ServletResponse.getOutputStream()" Como o objeto de resposta é uma instância que possui um ciclo de vida superior ao do próprio servlet, isso pode causar um problema para a análise de revisão de código. Você poderá ver algumas descobertas em outros servlets que apontam o problema do servlet atual. Observe que a criação de regras para essas instâncias específicas de objeto são questionáveis.
Se você criar uma nova regra utilizando o gabarito da rede "Evitar Definição de Método" e selecionar um método com um nome completo, apenas o nome do método e os parâmetros serão utilizados na revisão de código. O foco do gabarito da regra é sobre a assinatura de métodos, portanto as informações de nome do pacote e da classe são irrelevantes.
Quando você criar uma nova regra a partir de um gabarito da regra fornecido, não digite o nome de um método. Selecione o método, utilizando o navegador.
Quando você estiver configurando dados do servidor e aparecer uma janela de erro conhecido, feche a página correspondente do arquivo .java (código da página) e, em seguida, tente configurar novamente os dados.
No Linux™, na página Preferências, talvez não seja possível visualizar todas as categorias de regra e detalhes da regra quando a revisão de código selecionada contém uma grande quantidade de regras. A solução alternativa para isso é, na página Preferências, selecione Revisão Rápida de Código, feche a página Preferências e reabra-a. Em seguida, você poderá selecionar qualquer revisão de código e ela aparecerá corretamente.
Retornar para o Arquivo Leia-me Principal