Problemas com jsp:useBean

Olá:



Estou rodando um sistema com JBoss + Tomcat. Numa página JSP crio um bean (um ArrayList) da seguinte forma:



<jsp:useBean id="listAddresses" class="java.util.ArrayList">

<%

org.jboss.logging.Logger.getLogger("_jspService").info(listAddresses);

org.jboss.logging.Logger.getLogger("_jspService").info("vazia? " + listAddresses.isEmpty());

%>

<%

listAddresses.addAll(bean.getAddress());

%>

</jsp:useBean>

<%

Collection addressCollection = bean.getAddress(); //capturando addresses

%>



A página aparece "qubrada". No Prompt do JBosss aparece a seguinte mensagem de erro:



Quote:


09:59:51,796 INFO [_jspService] []

09:59:51,796 INFO [_jspService] vazia? true

09:59:51,836 ERROR [Engine] StandardWrapperValve[jsp]: Servlet.service() for ser

vlet jsp threw exception



09:59:51,906 ERROR [Engine] ----- Root Cause -----

java.lang.NullPointerException

at java.util.ArrayList.addAll(ArrayList.java:433)

at org.apache.jsp.cadast_endereco_jsp._jspService(cadast_endereco_jsp.ja

va:564)




Qual seria o NullPointer? Se fosse listAddresses, as mensagens de erro não seriam impressas. Além disso quando comento o bloco <jsp:useBean> Não acontece erros. Isso indica que o método bean.getAddress() não retorna null. Em outros trechos da mesma coisa faço coisa parecida: crio um Bean ArrayList e depois o preencho com um addAll() e não há problemas. Logo o que há de errado? :frowning:



Grato,



Rafael Ubiratam Clemente Afonso

Java 2 Certified Programmer



[ Esta mensagem foi editada por: rucafonso em 25-02-2003 10:18 ]



PS: Algúem pode me dizer por que sempre tenhos problemas ao usar tags HTLM neste forum? :frowning:



[ Esta mensagem foi editada por: rucafonso em 25-02-2003 10:21 ]



[ Esta mensagem foi editada por: Franklin em 25-02-2003 13:25 ]

Na sua mensagem você diz que "bean.getAddress() não retorna null" porque "não acontecem erros"…

Bom, neste trecho do seu código o único lugar que aconteceria um erro no caso dele ser null é o addAll mesmo.



Então, só para ter certeza de que não é null, tente debugar colocando um



<% if(addressCollection==null) {%>

É null

<%}%>



Para testar melhor

Bani:



Fiz o teste que sugeriu e apareceu que addressCollection não é null. Mesmo se fosse acontaceria um NullPointerException no momento em que fizesse listAddresses.isEmpty(). Foi isso que quis dizer ao escrever que não é null.



Rafael Ubiratam Clemente Afonso

Java 2 Certified Programmer

[ Esta mensagem foi editada por: rucafonso em 25-02-2003 12:56 ]

Quote:
java.lang.NullPointerException


at java.util.ArrayList.addAll(ArrayList.java:433)






O erro é disparado de dentro da classe ArryList, como mostra o trecho de código acima. Muito provavelmente pq o seu ArrayList possui um objeto null.

Já experimentou imprimir o conteúdo da lista?

De fato, bean.getAddress() estava retornando null. E, de acordo com a especificação de AbstractCollection (da qual ArrayList deriva) é disparada uma NullPointerException quando recebe uma Collection null. Portanto fo falha minha :-?



Grato,