FileLock - Exception wird immer geworfen

Diskutiere FileLock - Exception wird immer geworfen im Allgemeine Java-Themen Bereich.
C

Caliburns

Hallo,

es geht um einen einfachen FileLock in einem JUnit-Test. Ich habe folgenden Code:

Code:
       @Test(expected = IOException.class)
       public final void writingLocked() throws URISyntaxException, IOException {
           File file = new File("sdffd");
     
           RandomAccessFile channel = new RandomAccessFile(file, "w");
           FileLock lock = channel.getChannel().lock();
     
           Files.writeString(path, "hallo");
     
           lock.release();
           channel.close();
An sich funktioniert das alles, also der Test wird grün wenn der Zugriff erfolgt und wird rot wenn kein Zugriff auf die gelockte Datei erfolgt. Nur leider gibt er die Datei scheinbar nicht mehr frei am Ende obwohl ich es eigentlich richtig reingeschrieben habe oder?
Ich sehe es daran, weil andere Test die auf die gleiche Variable zugreifen nach dem Filelocking fehlschlagen. Wo liegt der Fehler? Muss der Release vielleicht in den @after teil?

Danke und Viele Grüße
 
Zuletzt bearbeitet:
T

thecain

Beim write kommt ja eine Exception. Da bricht der Code ab. Du brauchst also ein finally um den lock wieder zu entfernen.
 
C

Caliburns

Ich danke dir!
Hatte mir das try-catch-finally System noch nicht angeschaut.
 
Thema: 

FileLock - Exception wird immer geworfen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben