*/\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
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
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