I think that's the expected behaviour on a windows machine for any file
opened in a program. The code clearly closes the input stream created from
the file that is passed in so I don't think there is any reason GeoTools
would be locking the file.

Ian

On Wed, 10 Dec 2025 at 17:31, Viatcheslav Sysoltsev <
[email protected]> wrote:

> 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
>
> _______________________________________________
> GeoTools-GT2-Users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
>


-- 
Ian Turton
_______________________________________________
GeoTools-GT2-Users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to