]> source.dussan.org Git - gitblit.git/commitdiff
Simplify blob loading code
authorJames Moger <james.moger@gitblit.com>
Tue, 3 Dec 2013 16:20:28 +0000 (11:20 -0500)
committerJames Moger <james.moger@gitblit.com>
Tue, 3 Dec 2013 16:20:28 +0000 (11:20 -0500)
Change-Id: I7f8ad8936e620dd06e88d85f6837248eea75a1ec

src/main/java/com/gitblit/utils/JGitUtils.java

index 47799aabcf6dced66691e6e7925dc5f2d428904a..212a90af4af57560a5f1f59066e4169a2e144364 100644 (file)
  */\r
 package com.gitblit.utils;\r
 \r
-import java.io.ByteArrayOutputStream;\r
 import java.io.File;\r
 import java.io.IOException;\r
-import java.io.InputStream;\r
 import java.text.DecimalFormat;\r
 import java.text.MessageFormat;\r
 import java.util.ArrayList;\r
@@ -755,18 +753,8 @@ public class JGitUtils {
                                ObjectId entid = tw.getObjectId(0);\r
                                FileMode entmode = tw.getFileMode(0);\r
                                if (entmode != FileMode.GITLINK) {\r
-                                       RevObject ro = rw.lookupAny(entid, entmode.getObjectType());\r
-                                       rw.parseBody(ro);\r
-                                       ByteArrayOutputStream os = new ByteArrayOutputStream();\r
-                                       ObjectLoader ldr = repository.open(ro.getId(), Constants.OBJ_BLOB);\r
-                                       byte[] tmp = new byte[4096];\r
-                                       InputStream in = ldr.openStream();\r
-                                       int n;\r
-                                       while ((n = in.read(tmp)) > 0) {\r
-                                               os.write(tmp, 0, n);\r
-                                       }\r
-                                       in.close();\r
-                                       content = os.toByteArray();\r
+                                       ObjectLoader ldr = repository.open(entid, Constants.OBJ_BLOB);\r
+                                       content = ldr.getCachedBytes();\r
                                }\r
                        }\r
                } catch (Throwable t) {\r
@@ -810,17 +798,8 @@ public class JGitUtils {
                byte[] content = null;\r
                try {\r
                        RevBlob blob = rw.lookupBlob(ObjectId.fromString(objectId));\r
-                       rw.parseBody(blob);\r
-                       ByteArrayOutputStream os = new ByteArrayOutputStream();\r
                        ObjectLoader ldr = repository.open(blob.getId(), Constants.OBJ_BLOB);\r
-                       byte[] tmp = new byte[4096];\r
-                       InputStream in = ldr.openStream();\r
-                       int n;\r
-                       while ((n = in.read(tmp)) > 0) {\r
-                               os.write(tmp, 0, n);\r
-                       }\r
-                       in.close();\r
-                       content = os.toByteArray();\r
+                       content = ldr.getCachedBytes();\r
                } catch (Throwable t) {\r
                        error(t, repository, "{0} can't find blob {1}", objectId);\r
                } finally {\r