We cannot always rename read-only files on network shares, so rename the temp file for a new loose object first, and then set it as read-only. Bug: 335388 Change-Id: Ie0350e032a97e0d09626d6143c5c692873a5f6a2 Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com> Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>tags/v0.11.1
@@ -472,8 +472,6 @@ public class ObjectDirectory extends FileObjectDatabase { | |||
return InsertLooseObjectResult.EXISTS_PACKED; | |||
} | |||
tmp.setReadOnly(); | |||
final File dst = fileFor(id); | |||
if (dst.exists()) { | |||
// We want to be extra careful and avoid replacing an object | |||
@@ -484,6 +482,7 @@ public class ObjectDirectory extends FileObjectDatabase { | |||
return InsertLooseObjectResult.EXISTS_LOOSE; | |||
} | |||
if (tmp.renameTo(dst)) { | |||
tmp.setReadOnly(); | |||
unpackedObjectCache.add(id); | |||
return InsertLooseObjectResult.INSERTED; | |||
} |