Wildfly Access Denied nach Delete und erneutes Schreiben

MiHimbert

Mitglied
Ich habe eine interessante Erfahrung mit Wildfly 26 gemacht.

Wenn ich eine Datei lösche und sofort neu schreibe kann ich in 1 zu 10 Fällen einen Access Denied Fehler bekommen.

Java:
            File file = new File(path);
            if (file.exists()) {
                file.delete();
            }

            Files.write(file.toPath(), inhalt);

Ich habe dann den IF durch ein WHILE ausgetauscht. Der Fehler kam nicht mehr. Kann es sein, dass die Ausführung des delete länger dauert?
Ich somit keinen Zugriff während dieser Zeitspanne habe.
Code:
            File file = new File(path);
            while (file.exists()) {
                file.delete();
            }

            Files.write(file.toPath(), inhalt);
 

httpdigest

Top Contributor
Das hat erstmal nichts mit Wildfly zu tun. Die File-API ist ja Java Standard API.
Desweiteren solltest du auch den Rückgabewert von File.delete() prüfen (das kann auch false sein), in welchem Fall dann ein erneutes Anlegen der Datei zu diesem Fehler führen kann (weil die Datei ja schon da ist). Es kann sein, dass ein Handle mit einer Schreiboperation noch auf der Datei besteht, wenn du sie schon löschen möchtest. Falls du die Datei gerade vorher beschrieben hattest, solltest du synchron einen Flush/Close abwarten.
 

Ähnliche Java Themen

Neue Themen


Oben