Brainlag: Warum fliegt diese NPE?

hdi

Top Contributor
Hi,

also im Nachhinein werd ich mir sicherlich denken :lol:, aber im Moment ist es einfach nur :bahnhof:.

Folgender Code (lasst euch nicht vom Thread stören, ist jetzt so aus meinem Programm rauskopiert):

Java:
		new Thread() {
		    public void run() {
			for (File root : File.listRoots()) {
			    // skip floppy disk drive
			    if (root.toString().equals("A:" + File.separator)) {
				continue;
			    }
			    if (root.exists()) {
				iterate(root);
			    }
			}
		    }

		    private void iterate(File root) {
			for (File file : root.listFiles()) {
			    if (file == null) {
				continue;
			    }
			    if (file.isDirectory()) {
				iterate(file);
			    }
			    System.out.println(file.getPath());
			}
		    }
		}.start();

Gibt bei mir folgendes:

C:\$Recycle.Bin
C:\autoexec.bat
C:\Boot\BCD
C:\Boot\BCD.LOG
C:\Boot\BCD.LOG1
C:\Boot\BCD.LOG2
C:\Boot\bootstat.dat
C:\Boot\cs-CZ\bootmgr.exe.mui
C:\Boot\cs-CZ
C:\Boot\da-DK\bootmgr.exe.mui
C:\Boot\da-DK
C:\Boot\de-DE\bootmgr.exe.mui
C:\Boot\de-DE
C:\Boot\el-GR\bootmgr.exe.mui
C:\Boot\el-GR
C:\Boot\en-US\bootmgr.exe.mui
C:\Boot\en-US\memtest.exe.mui
C:\Boot\en-US
C:\Boot\es-ES\bootmgr.exe.mui
C:\Boot\es-ES
C:\Boot\fi-FI\bootmgr.exe.mui
C:\Boot\fi-FI
C:\Boot\Fonts\chs_boot.ttf
C:\Boot\Fonts\cht_boot.ttf
C:\Boot\Fonts\jpn_boot.ttf
C:\Boot\Fonts\kor_boot.ttf
C:\Boot\Fonts\wgl4_boot.ttf
C:\Boot\Fonts
C:\Boot\fr-FR\bootmgr.exe.mui
C:\Boot\fr-FR
C:\Boot\hu-HU\bootmgr.exe.mui
C:\Boot\hu-HU
C:\Boot\it-IT\bootmgr.exe.mui
C:\Boot\it-IT
C:\Boot\ja-JP\bootmgr.exe.mui
C:\Boot\ja-JP
C:\Boot\ko-KR\bootmgr.exe.mui
C:\Boot\ko-KR
C:\Boot\memtest.exe
C:\Boot\nb-NO\bootmgr.exe.mui
C:\Boot\nb-NO
C:\Boot\nl-NL\bootmgr.exe.mui
C:\Boot\nl-NL
C:\Boot\pl-PL\bootmgr.exe.mui
C:\Boot\pl-PL
C:\Boot\pt-BR\bootmgr.exe.mui
C:\Boot\pt-BR
C:\Boot\pt-PT\bootmgr.exe.mui
C:\Boot\pt-PT
C:\Boot\ru-RU\bootmgr.exe.mui
C:\Boot\ru-RU
C:\Boot\sv-SE\bootmgr.exe.mui
C:\Boot\sv-SE
C:\Boot\tr-TR\bootmgr.exe.mui
C:\Boot\tr-TR
C:\Boot\zh-CN\bootmgr.exe.mui
C:\Boot\zh-CN
C:\Boot\zh-HK\bootmgr.exe.mui
C:\Boot\zh-HK
C:\Boot\zh-TW\bootmgr.exe.mui
C:\Boot\zh-TW
C:\Boot
C:\bootmgr
C:\BOOTSECT.BAK
C:\config.sys
Exception in thread "Thread-3" java.lang.NullPointerException
at Main$2$1.iterate(Main.java:88)
at Main$2$1.iterate(Main.java:93)
at Main$2$1.run(Main.java:82)


Ich versteh nich wie da ne NPE kommen kann, Zeile 82 ist
Code:
iterate(root);
Was ist hier null?

Thx
 

The_S

Top Contributor
Also am Methodenaufruf selbst liegts bestimmt nicht. Wenn dann an irgendetwas in der Methode. Ich vermute mal, dass du keinen Zugriff/keine Berechtigung auf das Verzeichnis hast. Dann kann eine NPE fliegen.
 

Sonecc

Gesperrter Benutzer
Dann fliegt normalerweise aber eine SecurityException oder nicht?

Ich vermute eher, dass der Ordner leer ist.
Du rufst iterate noch einmal auf, z.B. mit C:/leer/
da in C:/leer/ keine Datei vorhanden ist (und kein Ordner) liefert file.listFiles() null und dann fliegt die Exception (was normal ist bei dieser Verwendung der For schleife)
 

Nicer

Bekanntes Mitglied
Ich glaube eher dass da eine NPE Fliegt weil er ja ( im falle von keine leserechte ) über die Variable Root, die in diesem Moment
Java:
null
ist iteriert.
 

Sonecc

Gesperrter Benutzer
Hab ich gelesen, was ich auch gelesen habe ist:

Throws:
SecurityException - If a security manager exists and its SecurityManager.checkRead(java.lang.String) method denies read access to the directory

Ich bin dennoch der Meinung, dass ein leerer Ordner vorhanden ist und dadurch die NPE fliegt
 

The_S

Top Contributor
Da steht doch ganz eindeutig:

The array will be empty if the directory is empty

Also nix mit [c]null[/c]. Und:

Returns null if this abstract pathname does not denote a directory, or if an I/O error occurs

Also null, wenn der Pfad nicht existiert (was hier ausgeschlossen ist), oder wenn ein I/O-Fehler auftritt. Was hier der Fall ist. Da das Betriebssystem den Zugriff sperrt und nicht ein Java SecurityManager (was bei:

SecurityException - If a security manager exists and its SecurityManager.checkRead(java.lang.String) method denies read access to the directory

der Fall wäre).
 

Sonecc

Gesperrter Benutzer
im Selbsttest kann ich nun bestätigen was die anderen beiden gesagt haben, du hast schlicht keinen Zugriff auf den Ordner/die Datei

Zusatz:
The array will be empty if the directory is empty

:eek: Schande über mich :oops: habs überlesen und aus dem Quellcode etwas falsches interpretiert...
 
Zuletzt bearbeitet:

hdi

Top Contributor
Jo genau danke, also listFiles() liefert null, d.h. wohl I/O Error.
Kommt bei mir jetzt bei C:/Documents and Settings, wenn ich da drüber iterieren will.

Ist das so dass Java einfach nicht auf alles Zugriff bekommt? (Nichtmal lesend?)

Thx
 

The_S

Top Contributor
Jo genau danke, also listFiles() liefert null, d.h. wohl I/O Error.
Kommt bei mir jetzt bei C:/Documents and Settings, wenn ich da drüber iterieren will.

Ist das so dass Java einfach nicht auf alles Zugriff bekommt? (Nichtmal lesend?)

Thx

Wenn der angemeldete User darauf keinen Zugriff hat, ja. Wobei Documents and Settings eigentlich problemlos funktionieren sollte.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
hdi Hilfe BRAINLAG! Java Basics - Anfänger-Themen 2
F Operatoren Wieso fliegt hier eine NullPointer Exception :( Java Basics - Anfänger-Themen 3
P Wie kann diese Schleife beenden Java Basics - Anfänger-Themen 1
N Was Passiert mit dem Namen einer Variable, wenn man diese einer Liste Hinzufügt Java Basics - Anfänger-Themen 16
M Wie kommen diese Ausgaben zustande? Java Basics - Anfänger-Themen 12
W Warum diese Fehlermeldung? Java Basics - Anfänger-Themen 12
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
Alen123 Wie würdet ihr diese Aufgabenstellung lösen? Java Basics - Anfänger-Themen 18
J Hallo zusammen , was macht diese Methode hier genau? Java Basics - Anfänger-Themen 3
Fats Waller Wofür stehen diese Konstanten im Java Labyrinth ? Java Basics - Anfänger-Themen 5
M Könnte mir jemand diese Aufgabe erklären? Java Basics - Anfänger-Themen 2
M Könnte mir jemand diese Aufgabe erklären? Java Basics - Anfänger-Themen 9
dieter000 Wie schreibe ich diese ZEile um? Java Basics - Anfänger-Themen 1
M Objekt mit eindeutiger ID löschen, das nächste Objekt hat dann diese ID Java Basics - Anfänger-Themen 5
J Womit kann ich diese Methode testen? Java Basics - Anfänger-Themen 5
J Hat jemand einen Lösungsansatz für diese Aufgabe? Java Basics - Anfänger-Themen 1
ZH1896ZH Wieso diese Ausgabe?? Java Basics - Anfänger-Themen 10
T Was macht diese Zeile? Java Basics - Anfänger-Themen 9
G Woher kommt diese Eigenschaft Java Basics - Anfänger-Themen 5
O Was tut diese Methode? und wie müssen die assertions aussehen? Java Basics - Anfänger-Themen 21
F Wie implementiere ich diese Aufgabenstellung? Java Basics - Anfänger-Themen 16
F Wie kann ich diese NullPointerException umgehen?! Java Basics - Anfänger-Themen 41
F Warum erhalte ich diese Fehler bei der Einbindung von SQLite JDBC in Eclipse? Java Basics - Anfänger-Themen 1
F Warum verläuft DIESE Schleife endlos? Java Basics - Anfänger-Themen 4
D Was bedeutet diese Schreibweise? Java Basics - Anfänger-Themen 9
A Erste Schritte Bitte helfen sie mir diese Programm zu schreiben Java Basics - Anfänger-Themen 12
W Wie vermerke ich diese Struktogramm Passage in Java Syntax? Java Basics - Anfänger-Themen 8
N Methoden warum wird diese Methode aufgerufen Java Basics - Anfänger-Themen 9
L Input/Output Wieso kommt diese Ausgabe? Java Basics - Anfänger-Themen 12
L Datentypen Date API - diese Woche bestimmen Java Basics - Anfänger-Themen 1
M Aus Datei auslesen und untersuchen ob diese Zeile schon vorhanden ist Java Basics - Anfänger-Themen 3
B Kann mir jemand diese Bedingung erklären Java Basics - Anfänger-Themen 5
B Wie könnte man mit Java diese Matheaufgabe lösen Java Basics - Anfänger-Themen 7
B Wie würdet ihr diese Methode erklären? Java Basics - Anfänger-Themen 2
C Methoden Welche JSoup Methoden Und Parameter für diese HTML Tags Java Basics - Anfänger-Themen 4
kilopack15 Ist diese setter-Methode richtig? Java Basics - Anfänger-Themen 2
B Wie funktionieren diese Methoden in diesem Sortierverfahren genau? Java Basics - Anfänger-Themen 2
B Was macht diese Methode? Java Basics - Anfänger-Themen 9
P Was macht diese methode Java Basics - Anfänger-Themen 2
P Terminieren diese Schleifen Java Basics - Anfänger-Themen 6
U Ist diese Methode zur Matrix Vektor Multiplikation korrekt ? Java Basics - Anfänger-Themen 5
T Zeilen des ListArray nach einem Wort durchsuchen und diese Zeile ausgeben Java Basics - Anfänger-Themen 4
K Methoden mit den Namen accept. Welche Funktion haben diese? Java Basics - Anfänger-Themen 2
X wie kann ich in bluej/java einene 2d array mit zahlen fuellen, so dass sich diese in der der zeilen Java Basics - Anfänger-Themen 2
G Vertsändnisfrage zu Code - Wie kommt diese Ausgabe zustande? Java Basics - Anfänger-Themen 2
J Kann mir bitte mal jemand diese Codes erklären? Java Basics - Anfänger-Themen 19
D Erste Schritte Dynamisch Objekte erzeugen und diese durchsuchen Java Basics - Anfänger-Themen 7
X Wann schreibt man diese Syntax zeichen { } Java Basics - Anfänger-Themen 8
A Wieso kann ich nicht auf diese Variable zugreifen? Java Basics - Anfänger-Themen 6
A Erste Schritte Wieso funktioniert diese Klasse nicht Java Basics - Anfänger-Themen 11
H Wie erstelle ich diese Klassen? Java Basics - Anfänger-Themen 44
R Kann jemand diese Java Programmierung machen? Versteh ich leider nicht Java Basics - Anfänger-Themen 17
M Erste Schritte Wie kommt man auf diese Ausgabe? Java Basics - Anfänger-Themen 3
S Methoden Return Anweisung beendet Methode nicht, stattdessen wird diese zweimal durchlaufen Java Basics - Anfänger-Themen 3
SexyPenny90 Wieso ist diese eigene Equals-Methode schlecht? Java Basics - Anfänger-Themen 17
F verstehe diese Variable nicht... Java Basics - Anfänger-Themen 4
B for-schleife - Was tut diese? Java Basics - Anfänger-Themen 11
A Wie kommt diese NullPointerException zustande? Java Basics - Anfänger-Themen 13
D Warum ist diese Interfacedeklaration falsch? Java Basics - Anfänger-Themen 5
T Warum brauche ich diese IOException? Java Basics - Anfänger-Themen 30
R Welche Datenstruktor für diese Liste? Java Basics - Anfänger-Themen 6
B Erste Schritte Welche Kenntnisse brauche ich für diese Programmidee? Java Basics - Anfänger-Themen 4
L Immer diese Arrays Java Basics - Anfänger-Themen 11
H Was macht diese Methode? Java Basics - Anfänger-Themen 3
A was berechnet diese programm? Java Basics - Anfänger-Themen 13
G Was bedeutet diese Zeile? Java Basics - Anfänger-Themen 2
J Warum muss diese Methode static sein ?! Java Basics - Anfänger-Themen 7
H Warum funktioniert diese kleine Methode nicht? Java Basics - Anfänger-Themen 8
P ich versteh diese Methode nicht ;? Java Basics - Anfänger-Themen 7
P Datentypen Warum findet er diese methoden nicht? Java Basics - Anfänger-Themen 13
N We behandele ich diese Exception? Java Basics - Anfänger-Themen 17
O Ist diese Zahl größer oder kleiner 0? Java Basics - Anfänger-Themen 6
M Ist diese Aufgabe zu umständlich gelöst? Java Basics - Anfänger-Themen 9
M Gibt es eine einfachere Variante diese Aufgabenstellung zu lösen? Java Basics - Anfänger-Themen 11
J Woher kommt diese NullPointerException? Java Basics - Anfänger-Themen 6
N Verstehe diese Aufgabe nicht! Java Basics - Anfänger-Themen 16
D Wie wird diese Verzweigung genannt? Java Basics - Anfänger-Themen 6
H Klassen zur Anzeige ines Bildes und zum Zeichnen innerhalb diese Bildes Java Basics - Anfänger-Themen 2
N Wer kann diese Zeile erklären? Java Basics - Anfänger-Themen 9
T Warum muss diese Variable final deklariert werden? Java Basics - Anfänger-Themen 5
W Bindung bzw warum wird diese Methode aufgerufen? Java Basics - Anfänger-Themen 5
P [Positiv Erledigt] Ordner mit Bildern auslesen und diese speichern Java Basics - Anfänger-Themen 7
I Was macht diese Funktion? Java Basics - Anfänger-Themen 4
K Warum funktioniert diese Methode nicht? Java Basics - Anfänger-Themen 20
S Ich verstehe diese Methode nicht! Java Basics - Anfänger-Themen 6
G while (true) ? wodurch wird diese Schleife beendet? Java Basics - Anfänger-Themen 6
G Threads prüfen, ob diese noch laufen. Java Basics - Anfänger-Themen 3
G Class Getopts <-- Wie kann ich diese Class importieren Java Basics - Anfänger-Themen 1
G was bedeuted diese sachen wie <E> und so? Java Basics - Anfänger-Themen 2
S Warum bekomme ich diese Exception ? Java Basics - Anfänger-Themen 3
C Wie kann ich diese Methode aufrufen? Java Basics - Anfänger-Themen 2
M Warum wird diese Methode ausgeführt? Java Basics - Anfänger-Themen 2
M wie kann man diese Funktion besser machen ? Java Basics - Anfänger-Themen 3
S Nach Namen sortieren und diese in 3 Gruppen aufteilen Java Basics - Anfänger-Themen 16
ven000m Primzahl.class wie starte ich diese einzelne Datei? Java Basics - Anfänger-Themen 10
B wo finde ich diese Dateien? Java Basics - Anfänger-Themen 6
R Was bedeutet diese Zeile. Java Basics - Anfänger-Themen 8
S Rahmen zeichnen, wie heisst diese Componente Java Basics - Anfänger-Themen 6
A Was erzeugen diese Eingaben? Java Basics - Anfänger-Themen 2
M bewirken diese Schreibweisen das gleiche? :) Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben