OWASP AppSec Brasil

A segunda edição da versão brasileira principal conferência mundial de segurança de software vai acontecer em 2010. Será nos dias 16 a 19 de novembro em Campinas e terá como keynotes:

Para mais detalhes, veja o site da OWASP AppSec Brasil 2010.

110 dias para
AppSec Brasil 2010

Links

Outros sites de interesse:
   OWASP
   Build Security In

Acesse também:
    www.sapao.net

Termos de uso

O conteúdo deste site está sujeito à licença Creative Commons.

Creative Commons License

Atividade recente no site

Início‎ > ‎

Validar unboxing para tipos primitivos

Java, a partir da versão 5, permite que tipos primitivos sejam usados em conjunto com objetos que os encapsulem sem necessidade de uma conversão explícita. Este processo, que transforma automaticamente um int em Integer, é chamado de Autoboxing e seu reverso (que transforma um Integer em int) de unboxing. Entretanto os objetos que encapsulam tipos primitivos (conhecidos por wrappers) permitem o valor null enquanto os tipos primitivos não aceitam. Um serviço que receba objetos wrapper deve validar se o objeto não é nulo antes de proceder a operações que envolvam o unboxing. O trecho de código abaixo:

public void f(Integer wrapper) {
   int primitive = 0;
   if(wrapper == primitive) {
      // ... excuta operação ...
   }
}

Pode comprometer a execução da aplicação caso o chamador do serviço envie valores nulos. Para evitar que o serviço provido seja interrompido por uma exceção, o trecho deve ser reescrito de forma a testar se o parâmetro é nulo:

public void f(Integer wrapper) {
   int primitive = 0;
   if(wrapper != null && wrapper == primitive) {
      // ... excuta operação ...
   }
}

Dessa forma evitando o erro ao executar o unboxing.