From ff13648ea295bba02ca192c00a39335b05468abe Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Thu, 15 Mar 2012 07:21:14 -0700 Subject: [PATCH] Revert "Quickfix for AutoCRLF handling" This reverts commit 88fe2836edab8d8ce82d28acd9d07b061988ff3a. Auto CRLF isn't special enough to be screwing around with the buffers used for raw byte processing of the ObjectInserter API. If it needs a buffer to process a file that is bigger than the buffer allocated by an ObjectInserter, it needs to do its own buffer management. Change-Id: Ida4aaa80d0f9f78035f3d2a9ebdde904c980f89a --- .../org/eclipse/jgit/api/AddCommandTest.java | 31 +------------------ .../org/eclipse/jgit/lib/ObjectInserter.java | 25 +-------------- .../eclipse/jgit/storage/dfs/DfsInserter.java | 2 +- .../storage/file/ObjectDirectoryInserter.java | 4 +-- 4 files changed, 5 insertions(+), 57 deletions(-) diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java index 07173a9c3..d989b63b2 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java @@ -114,7 +114,7 @@ public class AddCommandTest extends RepositoryTestCase { } @Test - public void testAddExistingSingleSmallFileWithNewLine() throws IOException, + public void testAddExistingSingleFileWithNewLine() throws IOException, NoFilepatternException { File file = new File(db.getWorkTree(), "a.txt"); FileUtils.createNewFile(file); @@ -137,35 +137,6 @@ public class AddCommandTest extends RepositoryTestCase { indexState(CONTENT)); } - @Test - public void testAddExistingSingleMediumSizeFileWithNewLine() - throws IOException, NoFilepatternException { - File file = new File(db.getWorkTree(), "a.txt"); - FileUtils.createNewFile(file); - StringBuilder data = new StringBuilder(); - for (int i = 0; i < 1000; ++i) { - data.append("row1\r\nrow2"); - } - String crData = data.toString(); - PrintWriter writer = new PrintWriter(file); - writer.print(crData); - writer.close(); - String lfData = data.toString().replaceAll("\r", ""); - Git git = new Git(db); - db.getConfig().setString("core", null, "autocrlf", "false"); - git.add().addFilepattern("a.txt").call(); - assertEquals("[a.txt, mode:100644, content:" + data + "]", - indexState(CONTENT)); - db.getConfig().setString("core", null, "autocrlf", "true"); - git.add().addFilepattern("a.txt").call(); - assertEquals("[a.txt, mode:100644, content:" + lfData + "]", - indexState(CONTENT)); - db.getConfig().setString("core", null, "autocrlf", "input"); - git.add().addFilepattern("a.txt").call(); - assertEquals("[a.txt, mode:100644, content:" + lfData + "]", - indexState(CONTENT)); - } - @Test public void testAddExistingSingleBinaryFile() throws IOException, NoFilepatternException { diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectInserter.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectInserter.java index e03fe3571..0355e56f5 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectInserter.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectInserter.java @@ -109,29 +109,6 @@ public abstract class ObjectInserter { return tempBuffer; } - static private final int tempBufSize; - static { - String s = System.getProperty("jgit.tempbufmaxsize"); - if (s != null) - tempBufSize = Integer.parseInt(s); - else - tempBufSize = 1000000; - } - - /** - * @param hintSize - * @return a temporary byte array for use by the caller - */ - protected byte[] buffer(long hintSize) { - if (hintSize >= tempBufSize) - tempBuffer = new byte[0]; - else if (tempBuffer == null) - tempBuffer = new byte[(int) hintSize]; - else if (tempBuffer.length < hintSize) - tempBuffer = new byte[(int) hintSize]; - return tempBuffer; - } - /** @return digest to help compute an ObjectId */ protected MessageDigest digest() { digest.reset(); @@ -195,7 +172,7 @@ public abstract class ObjectInserter { md.update((byte) ' '); md.update(Constants.encodeASCII(length)); md.update((byte) 0); - byte[] buf = buffer(length); + byte[] buf = buffer(); while (length > 0) { int n = in.read(buf, 0, (int) Math.min(length, buf.length)); if (n < 0) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/dfs/DfsInserter.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/dfs/DfsInserter.java index e80a32475..335e284e2 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/dfs/DfsInserter.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/dfs/DfsInserter.java @@ -116,7 +116,7 @@ public class DfsInserter extends ObjectInserter { @Override public ObjectId insert(int type, long len, InputStream in) throws IOException { - byte[] buf = buffer(len); + byte[] buf = buffer(); if (len <= buf.length) { IO.readFully(in, buf, 0, (int) len); return insert(type, buf, 0, (int) len); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/ObjectDirectoryInserter.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/ObjectDirectoryInserter.java index 75f6b0bda..ffd5c4149 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/ObjectDirectoryInserter.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/ObjectDirectoryInserter.java @@ -95,8 +95,8 @@ class ObjectDirectoryInserter extends ObjectInserter { @Override public ObjectId insert(final int type, long len, final InputStream is) throws IOException { - byte[] buf = buffer(len); - if (len <= buf.length) { + if (len <= buffer().length) { + byte[] buf = buffer(); int actLen = IO.readFully(is, buf, 0); return insert(type, buf, 0, actLen);