mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-12-22 16:29:51 +01:00
Handle missing blobs in blob store for lfs pointers
This commit is contained in:
@@ -213,8 +213,14 @@ public class GitBrowseCommand extends AbstractGitCommand
|
|||||||
|
|
||||||
if (lfsPointer.isPresent()) {
|
if (lfsPointer.isPresent()) {
|
||||||
BlobStore lfsBlobStore = lfsBlobStoreFactory.getLfsBlobStore(repository);
|
BlobStore lfsBlobStore = lfsBlobStoreFactory.getLfsBlobStore(repository);
|
||||||
Blob blob = lfsBlobStore.get(lfsPointer.get().getOid().getName());
|
String oid = lfsPointer.get().getOid().getName();
|
||||||
file.setLength(blob.getSize());
|
Blob blob = lfsBlobStore.get(oid);
|
||||||
|
if (blob == null) {
|
||||||
|
logger.error("lfs blob for lob id {} not found in lfs store of repository {}", oid, repository.getNamespaceAndName());
|
||||||
|
file.setLength(-1);
|
||||||
|
} else {
|
||||||
|
file.setLength(blob.getSize());
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
file.setLength(loader.getSize());
|
file.setLength(loader.getSize());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -145,7 +145,12 @@ public class GitCatCommand extends AbstractGitCommand implements CatCommand {
|
|||||||
|
|
||||||
private Loader loadFromLfsStore(TreeWalk treeWalk, RevWalk revWalk, LfsPointer lfsPointer) throws IOException {
|
private Loader loadFromLfsStore(TreeWalk treeWalk, RevWalk revWalk, LfsPointer lfsPointer) throws IOException {
|
||||||
BlobStore lfsBlobStore = lfsBlobStoreFactory.getLfsBlobStore(repository);
|
BlobStore lfsBlobStore = lfsBlobStoreFactory.getLfsBlobStore(repository);
|
||||||
Blob blob = lfsBlobStore.get(lfsPointer.getOid().getName());
|
String oid = lfsPointer.getOid().getName();
|
||||||
|
Blob blob = lfsBlobStore.get(oid);
|
||||||
|
if (blob == null) {
|
||||||
|
logger.error("lfs blob for lob id {} not found in lfs store of repository {}", oid, repository.getNamespaceAndName());
|
||||||
|
throw notFound(entity("LFS", oid).in(repository));
|
||||||
|
}
|
||||||
GitUtil.release(revWalk);
|
GitUtil.release(revWalk);
|
||||||
GitUtil.release(treeWalk);
|
GitUtil.release(treeWalk);
|
||||||
return new BlobLoader(blob);
|
return new BlobLoader(blob);
|
||||||
|
|||||||
Reference in New Issue
Block a user