|
From: Viatcheslav S. <Via...@h-...> - 2025-12-10 17:30:23
|
Hi everyone,
I'd like to ask if it is an intended behavior, that GeoTiffReader locks the file indefinitely? If yes, is there a way to read the file completely and "dispose" the reader and the lock?
A simple program to demonstrate:
import org.geotools.coverage.grid.GridCoverage2D;
import org.geotools.gce.geotiff.GeoTiffReader;
import org.junit.jupiter.api.Test;
import java.io.File;
import java.time.Duration;
class GeotiffReaderTest {
@Test
public void read() throws Exception {
File file = new File("C:\\Projects\\tmp\\tmp2\\qwf 2_TH.tif");
GeoTiffReader reader = new GeoTiffReader(file);
GridCoverage2D grid = reader.read(null);
Thread.sleep(Duration.ofSeconds(60));
}
}
when run, it reads the file and sleeps for a minute. Until JVM exits, the tif file cannot be moved or deleted:
C:\Projects\tmp\tmp2>mv "qwf 2_TH.tif" "qwf 2_TH.tif2"
/usr/bin/mv: cannot move 'qwf 2_TH.tif' to 'qwf 2_TH.tif2': Device or resource busy
// the problem is reproducible with geotools 34.1 and 33.0
With best regards,
Viatcheslav Sysoltsev / Slava
|