Haftpflicht Blogger
Virtual Server von Host Europe

FindBugs: Dead store to local variable

| 23. September 2011 | Keine Kommentare

Findbugs Logo
Das Tool FindBugs untersucht den Javacode auf Bytecode-Ebene nach signifikaten Fehlermustern und zeigt  auf die Codezeile in der der Fehler gefunden wurde.

 

 

 

Folgende zwei Codezeilen bewirken z.B. die Ausgabe der Fehlermeldung:  Dead store to local variable.

List<Artikel> artikelListe = new List<Artikel>();
artikelListe = dao.getWarenkorbArtikel();

Können Sie die Fehlerursache entdecken?

 

Analyse des Codes:

Zeile 1: In der zweiten Zeile wird die lokale Variable artikelList angelegt und der Referenzzeiger der Variable in den Stack gelegt. Im Heap wird ein Objekt Liste<Artikel> erzeugt. Der Referenzzeiger zeigt auf dieses Listenobjekt.

 

Zeile 2: Die Methode dao.getWarenkorbArtikel liefert als Ergebnis ein Objekt vom Typ List<Artikel> zurück. Durch die Zuordnung in dieser Zeile wird die gerade erst erzeugte Referenzzuordnung von artikelListe gestrichen und der Zeiger artikelListe zeigt nun auf das von dao.getWarenkorbArtikel zurückgegebene Objekt.

Das heisst, sofort nach der Erzeugung des ListObjekts  ist dieses Objekt nach der Folgezeile auch schon wieder Müll, bereit für die Garbadge Collection und belegt nur Speicherplatz.

Richtig:  Aus den Diagrammen wird klar, dass für das obige Beispiel das Statement sinnvollerweise folgendermaßen lauten müsste:

List<Artikel> artikelListe = dao.getWarenkorbArtikel();

Siehe auch:

Wikipedia: Funktionsweise von FindBugs
Sourceforge: FindBugs Projektseite

 

 
Anzeige

 

Stichworte: , ,

Kategorie: Java

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.