Created attachment 127156 [details]
JGit library does not automatically lose opened file descriptors and keeps the metadata files opened until Repository.close() is called. This results in collision with external tools (usually on Windows) such as git command line client. See bug #218443.
We need to add a method to GitClient API that will be called by all API clients when they stop using the GitClient's instance. The idea is that internally the Git library will count usages of GitClients - will count created instances - and when the last GitClient instance will call release() the underlying repository will be closed along with all the opened files.
Please do not use finalizer in GitClient.
Created attachment 127195 [details]
> Please do not use finalizer in GitClient.
i will integrate tomorrow if no other comments come
Integrated into 'main-golden', will be available in build *201211170002* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
User: Ondrej Vrabec <firstname.lastname@example.org>
Log: #221498 - add release() method to GitClient API
adding GitClient.release method to be able to release any open file descriptors held by JGit