# NullPointerException



## carpe (10. Feb 2010)

Hallo Leute,

weiss Jemand warum Ich einen NullPointerException bekomme.
Es liegt vermutlich in der If anweisung, Ich weiss aber nicht warum Ich eine Exception ausgegeben bekomme.
Es geht hier um die validierung der Formular eingaben.
Das Problem beschäftigt mich schon den ganzen Tag .


```
String[] feldName = {strassenNr,plz,stadt,land,tag,monat,jahr,
                           strassenNrEinzug,plzEinzug,stadtEinzug,landEinzug,tagEinzug,monatEinzug,jahrEinzug,
                           vorname,name,vorwahl,nummer,email
                          };
String regex = "\\w+";
boolean check = true;
for(String fName : feldName){
   Matcher m = Pattern.compile(regex,Pattern.CASE_INSENSITIVE).matcher(fName);
       
   f(! m.find() ){//bei leer zeichen , springt er in die if Anweisung, so stell ich mir das vor mit der regex.
      check = false;
      break;
      //Wenn das Programm hier landet gibt er mir ein NullPointerException aus ,wenn nicht ,null problemo.

   }   
}
```
...
..
..


----------



## Murray (10. Feb 2010)

Wie - die NullPointerException tritt auf, wenn die Codezeile hinter dem break erreicht wird (also nie)? Das kann es ja nicht sein.

Poste doch bitte den Code (gern mit JAVA-Tags, damit das richtig formatiert wird) und kennzeichne die Zeile, in der laut Stack-Trace der Fehler Auftritt.


----------



## carpe (11. Feb 2010)

Hallo,
hier ist mein Quellcode.
Vielleicht wisst Ihr ja woran es liegt, wenn nicht, überlege Ich mir einen anderen weg .

Danke im Voraus.

```
String adress;   
      String[] feldName = {strassenNr,plz,stadt,land,tag,monat,jahr,
                           strassenNrEinzug,plzEinzug,stadtEinzug,landEinzug,tagEinzug,monatEinzug,jahrEinzug,
                           vorname,name,vorwahl,nummer,email
                          };
      String regex = "\\w+";
      boolean check = true;
      for(String fName : feldName){
          Matcher m = Pattern.compile(regex,Pattern.CASE_INSENSITIVE).matcher(fName);
       
          if(! m.find() ){
            check = false;
            break;
          }
      }
      if(check == true){
        adress = "/WEB-INF/anfrageOk.jsp";
      }
      else{
        adress = "/WEB-INF/anfrageFehler.jsp";
      }
      RequestDispatcher dispatcher = request.getRequestDispatcher(adress);
      dispatcher.forward(request, response);
   


        
    }
}
```


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.NullPointerException
	java.util.regex.Matcher.getTextLength(Matcher.java:1140)
	java.util.regex.Matcher.reset(Matcher.java:291)
	java.util.regex.Matcher.<init>(Matcher.java:211)
	java.util.regex.Pattern.matcher(Pattern.java:888)
	umzug.Anfrage.doPost(Anfrage.java:54)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:402)
	org.apache.catalina.servlets.InvokerServlet.doPost(InvokerServlet.java:170)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.


----------



## SlaterB (11. Feb 2010)

fName ist irgendwann in der Schleife null,
denkbar einfach zu prüfen:

System.out.println("nun kommt fName "+fName+" dran");

eine (oder mehrere) der zig Variablen vorher fürs Array wird null sein,
sowas sind doch die einfachsten Fehler die es überhaupt gibt..

idealerweise in einem normalen main-Testprogramm testen, nicht in einer komplizierten Webserver-Umgebung mit schlechter Ausgabe, langwiedrigen Start usw.


----------



## carpe (11. Feb 2010)

SlaterB ,

du hast es drauf man, Respekt.

Ich habe den Fehler herausbekommen.

<input class="strasse" type="text" name="strassenNrEinzug" >

String strassenNrEinzug = request.getParameter("strassenNrEinzug");

Ich habe strassenNrEinzug im Input falsch geschrieben , deshalb habe Ich einen NullPointerException bekommen.
Der Wert für String strassenNrEinzug = request.getParameter("strassenNrEinzug");
war immer null, weil die beiden Strings (strassenNrEinzug) nicht übereinstimmten.

Danke nochmal ....


----------

