Problema estranho facelets / reflection

Seguinte pessoal, tem alguns componentes que criei utilizando este tutorial.

Eles sempre funcionaram, até que há pouco tempo eu separei minha aplicação em algumas (antes era tudo uma coisa só), o que não deveria interferir nisso.
O Fato é que aproveitei pra mexer no cabeçalho dos web deployers (web.xml) que estava para a versão 2.4 e coloquei tudo 2.5

O lance é que o erro ocorre apenas em algumas páginas que utilizam o meu componente, foi então que vi a linha que causava o erro, era uma linha do facelets, então baixei o fonte do facelets e fui debugar
nos anexos segue um passo a passo das coisas que conferi inumeras vezes e não me conformo por que isso da erro

Na imagem um vocês podem ver a linha que gera o exception, é um illegalArgumentException
http://geocities.yahoo.com.br/rafaelrfelipe/dossie/1_linhaProblematica.jpg
O que essa linha faz nada mais é do que chamar o metodo setForId do meu componente via reflection

na imagem 2 vocês podem ver que o valor passado está correto, a assinatura do metodo aceita só um argumento do tipo string, logo o valor é um Object[] e o primeiro elemento é um String.
http://geocities.yahoo.com.br/rafaelrfelipe/dossie/2_atributoValue.jpg

Na imagem 3 vocês podem ver que o atributo passado é uma instancia da minha classe, que possui o atributo forId (que é String)
http://geocities.yahoo.com.br/rafaelrfelipe/dossie/3_instance.jpg

Na imagem 4 vocês podem ver a instancia do objeto que representa o metodo da classe, como podem reparar, a assinatura do método é compatível, retorna void e recebe uma unica string
http://geocities.yahoo.com.br/rafaelrfelipe/dossie/4_method.jpg

Na imagem 5 o exception que essa execução gera
http://geocities.yahoo.com.br/rafaelrfelipe/dossie/5_exception.jpg

e na imagem 6 o erro q sai na tela
http://geocities.yahoo.com.br/rafaelrfelipe/dossie/6_telaErro.jpg

será que alguém tem alguma idéia do que posso fazer pra tentar fazer esse erro parar de acontecer?

Primeiro imaginei que poderia ser versão do java, pois o jar que contém o componente tinha sido compilado para ser compatível com a versão 1.6 e a aplicação que o usava estava configurada pra rodar usando 1.5 compatibility, mas então troquei tudo de tudo pra 1.6, fiz 512 mil cleans diferentes pra não ter erro de ser cache e não resolveu! Coloquei todas as classes do meu componente como serializaveis e declarei o serialVersionID gerado pelo eclipse, achando que assim ele poderia entender a compatibilidade de classes (sei lá, to desesperado já)

qualquer sugestão é bem vinda

Na maquina de um outro rapaz daqui onde trabalho, uma página onde o componente funciona aqui, não funciona lá. E as que não funcionam aqui, funcionam lá!
Diferenças entre as duas, uso o eclipse ganymede ele usa o europa, o tomcat foi copiado do meu, mas não sei dizer se desde que ele copiou mudou algo. Acho q vou fazer ele copiar o meu de novo pra ver no que dá.

Acabei de fazer um teste aqui:

        Object instance = new UIHelper();
        Method method = UIHelper.class.getMethod("setForId", String.class);
        Object[] value = new Object[]{"apelido"};
        try {
            method.invoke(instance, value);
        } catch (InvocationTargetException e) {
            System.out.println("Exception 1"+e.getMessage());
        } catch (Exception e) {
            System.out.println("Exception 2"+e.getMessage());
        }
       
        System.out.println(instance);

Faz praticamente a mesma coisa que a linha que da erro, mas funciona, isso ta num metodo main!