Analisando Scriptlets

Pessoal existe alguma coisa de errado neste Scriptlets para o tomcat lançar um NullPointerException???


<%        
    String paramColor = request.getParameter("color");        
       
    Cookie dadoCookie = null;
    Cookie[] cookies = request.getCookies();       
    
    if (cookies != null){
        
        Cookie cookie;
        for(int i=0;i < cookies.length;i++){
            cookie = cookies[i];
            if (cookie.getName().equals("color")){
                dadoCookie = cookie;
            }
        }
    }
    
    if (dadoCookie != null){        
        if (paramColor != null){
            if (paramColor.equals("original")){
                dadoCookie.setValue("");
            }else{
                dadoCookie.setValue(paramColor);
            }
        }
    }else{
        if (paramColor == null || paramColor.equals("original")){
            dadoCookie = new Cookie("color","");
        }else{
            dadoCookie = new Cookie("color",paramColor);
        }
    }    
    response.addCookie(dadoCookie);    
    
    String imagemColor = (dadoCookie.getValue().equals(""))?dadoCookie.getValue():dadoCookie.getValue()+"_";
%>    

é possível que request.getCookies() não esteja retornando nenhum valor. Daí quando o array cookies é acessado, é gerada a exceção.

Más eu verifico se Cookie[] cookies é nulo…

O mais estranho é que testando no tomcat 5.5.23 localmente funciona perfeitamente.

Agora colocando em hosting com tomcat 5.5.12 lança um NullPointerException, isto que fico intrigado. Detalhe “Meu hosting não fornece log do tomcat” :x

Dica:

Não compare as coisas assim:

paramColor.equals("original")

Compare assim

"original".equals(paramColor)

Só ai vc esta diminuindo muito a chance de tomar um NPE.