Newsgroup: it.comp.java
Titolo: Aiuto errore NullPointerException...

Salve a tutti...e ben trovati...
questo è quanto...
Ho una stupidissima paginetta JSP che legge un parametro inviatogli da una
form e fa alcune stronzatine...
questa è la parte del file prova.jsp maledetta :
....
<%
String cat =  request.getParameter("login");
int lun = cat.length();
boolean vuoto = lun == 0;
%>
....bla bla bla...
Il valore di <B>Login</B> è <%=cat%>.<br>
La sua lungezza è <%=lun%><br>
Il valore di <B>Vuoto</B> è <%=vuoto%>.
...bla bla....
bene, mando la richiesta dalla form tutto Oki, ma se provo a richiamare
direttamente la pagina mi esce questo bel msg d'errore :
java.lang.NullPointerException:
 at pagecompile.jsp._prove._update2._jspService(_update2.java:96)
 at com.sun.server.http.pagecompile.jsp.runtime.HttpJspBase.service(Compiled
Code)
 at javax.servlet.http.HttpServlet.service(Compiled Code)
 at
com.sun.server.http.pagecompile.jsp.runtime.JspServlet.runServlet(Compiled
Code)
 at
com.sun.server.http.pagecompile.jsp.runtime.JspServlet.processJspPage(Compil
ed Code)
 at com.sun.server.http.pagecompile.jsp.runtime.JspServlet.service(Compiled
Code)
 at javax.servlet.http.HttpServlet.service(Compiled Code)
 at com.sun.server.ServletState.callService(Compiled Code)
 at com.sun.server.ServletManager.callServletService(Compiled Code)
 at com.sun.server.ProcessingState.invokeTargetServlet(Compiled Code)
 at com.sun.server.http.HttpProcessingState.execute(Compiled Code)
 at com.sun.server.http.stages.Runner.process(Compiled Code)
 at com.sun.server.ProcessingSupport.process(Compiled Code)
 at com.sun.server.Service.process(Compiled Code)
 at com.sun.server.http.HttpServiceHandler.handleRequest(Compiled Code)
 at com.sun.server.http.HttpServiceHandler.handleRequest(Compiled Code)
 at com.sun.server.HandlerThread.run(Compiled Code)
è come se il getParameter va in errore se il parametro non esiste...
...come posso risolvere?!
Ve ne sarei molto grato...grazie.
Amedeoz.

Ve ne sarei molto grato...grazie.
Secondo me non e' il getParameter che va' in errore, ma il richiamo
di length() su un oggetto null che si incrocchia. Prova a mettere
una bella verifica di null prima di chiedere la lunghezza del
parametro.
Davide

 ...come posso risolvere?!
-- 
Cristian Veronesi ><((((º> 
http://www.crpa.it
Tzadikin, tzadikin geyen bom / Reshoyim, reshoyim falen bom
("just people will go ahead, evil people will fall" - yiddish song)

 parametro.
Gia fatto...
...ho provato con if (!cat.equals(null)) {.....}
l'errore non cambia...
Amedeoz.

 l'errore non cambia...
... solo che stavolta anzichè essere sollevato dalla cat.length() viene
sollevato dalla cat.equals(), perchè stai facendo la stessa cosa, cioè
invocando un metodo su di un oggetto null!!! Devi usare "==", non c'è
pezza.
Ciao, Cris


Oki...adesso funziona...
Mi sei stato di grande aiuto...
...anche se non capisco xchč prima mi dava errore...
...avevo fatto anche altri controlli, come ad esempio
 if (cat.equals(null)) ...
oppure
String tmp=null;
if (cat.equals(tmp)) ...
ma mi dava sempre errore... bho?!
A volte mi sembra di non capire un caxxo!! :)
Grazie assai cmq...
Amedeoz.

 ...anche se non capisco xchè prima mi dava errore...
Io ho cercato di spiegartelo nel mio post precedente ma evidentemente le
mie doti esplicative non sono granchè... :(
Ci riprovo : se cat è null non puoi invocare nessun metodo su di esso,
nè length() ma nemmeno equals(). Il risultato è sempre lo stesso, cioè
ti sollevano una NullPointerException. Per testare se una variabile è
istanziata oppure null devi usare l'operatore "==". 
