DefaultRepositoryCacheManager.cacheModuleDescriptor() sometimes leaves metadata*.lck files in the cache directory after a successful resolve. the problem seems to only occur when the searched artifact is actually found in the cache.
The problem starts on DefaultRepositoryCacheManager:880, where the lock is created. It looks like lock / unlock should always happen in a try/finally, which doesn't happen here. In my case, the method returns on line 920 without ever unlocking the file.
The issue started at revision 805346 (the most recent revision to this file).