Merge branch 'stable-5.1' into stable-5.2
* stable-5.1: Replace usage of ArrayIndexOutOfBoundsException in treewalk Add config constants for WindowCache configuration options Change-Id: I17da3c5183eca536aa2be3972bc5df45c9d75f1b Signed-off-by: David Pursehouse <david.pursehouse@gmail.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
This commit is contained in:
commit
0d962eaa78
|
@ -63,6 +63,30 @@
|
|||
<message_argument value="CONFIG_JMX_SECTION"/>
|
||||
</message_arguments>
|
||||
</filter>
|
||||
<filter id="1142947843">
|
||||
<message_arguments>
|
||||
<message_argument value="5.1.13"/>
|
||||
<message_argument value="CONFIG_KEY_PACKED_GIT_LIMIT"/>
|
||||
</message_arguments>
|
||||
</filter>
|
||||
<filter id="1142947843">
|
||||
<message_arguments>
|
||||
<message_argument value="5.1.13"/>
|
||||
<message_argument value="CONFIG_KEY_PACKED_GIT_MMAP"/>
|
||||
</message_arguments>
|
||||
</filter>
|
||||
<filter id="1142947843">
|
||||
<message_arguments>
|
||||
<message_argument value="5.1.13"/>
|
||||
<message_argument value="CONFIG_KEY_PACKED_GIT_OPENFILES"/>
|
||||
</message_arguments>
|
||||
</filter>
|
||||
<filter id="1142947843">
|
||||
<message_arguments>
|
||||
<message_argument value="5.1.13"/>
|
||||
<message_argument value="CONFIG_KEY_PACKED_GIT_WINDOWSIZE"/>
|
||||
</message_arguments>
|
||||
</filter>
|
||||
<filter id="1142947843">
|
||||
<message_arguments>
|
||||
<message_argument value="5.1.9"/>
|
||||
|
|
|
@ -230,6 +230,30 @@ public final class ConfigConstants {
|
|||
/** The "streamFileThreshold" key */
|
||||
public static final String CONFIG_KEY_STREAM_FILE_TRESHOLD = "streamFileThreshold";
|
||||
|
||||
/**
|
||||
* The "packedGitMmap" key
|
||||
* @since 5.1.13
|
||||
*/
|
||||
public static final String CONFIG_KEY_PACKED_GIT_MMAP = "packedgitmmap";
|
||||
|
||||
/**
|
||||
* The "packedGitWindowSize" key
|
||||
* @since 5.1.13
|
||||
*/
|
||||
public static final String CONFIG_KEY_PACKED_GIT_WINDOWSIZE = "packedgitwindowsize";
|
||||
|
||||
/**
|
||||
* The "packedGitLimit" key
|
||||
* @since 5.1.13
|
||||
*/
|
||||
public static final String CONFIG_KEY_PACKED_GIT_LIMIT = "packedgitlimit";
|
||||
|
||||
/**
|
||||
* The "packedGitOpenFiles" key
|
||||
* @since 5.1.13
|
||||
*/
|
||||
public static final String CONFIG_KEY_PACKED_GIT_OPENFILES = "packedgitopenfiles";
|
||||
|
||||
/** The "remote" key */
|
||||
public static final String CONFIG_KEY_REMOTE = "remote";
|
||||
|
||||
|
|
|
@ -43,6 +43,14 @@
|
|||
|
||||
package org.eclipse.jgit.storage.file;
|
||||
|
||||
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_CORE_SECTION;
|
||||
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_DELTA_BASE_CACHE_LIMIT;
|
||||
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_PACKED_GIT_LIMIT;
|
||||
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_PACKED_GIT_MMAP;
|
||||
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_PACKED_GIT_OPENFILES;
|
||||
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_PACKED_GIT_WINDOWSIZE;
|
||||
import static org.eclipse.jgit.lib.ConfigConstants.CONFIG_KEY_STREAM_FILE_TRESHOLD;
|
||||
|
||||
import org.eclipse.jgit.internal.storage.file.WindowCache;
|
||||
import org.eclipse.jgit.lib.Config;
|
||||
import org.eclipse.jgit.storage.pack.PackConfig;
|
||||
|
@ -227,20 +235,20 @@ public void setStreamFileThreshold(int newLimit) {
|
|||
* @since 3.0
|
||||
*/
|
||||
public WindowCacheConfig fromConfig(Config rc) {
|
||||
setPackedGitOpenFiles(rc.getInt(
|
||||
"core", null, "packedgitopenfiles", getPackedGitOpenFiles())); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
setPackedGitLimit(rc.getLong(
|
||||
"core", null, "packedgitlimit", getPackedGitLimit())); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
setPackedGitWindowSize(rc.getInt(
|
||||
"core", null, "packedgitwindowsize", getPackedGitWindowSize())); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
setPackedGitMMAP(rc.getBoolean(
|
||||
"core", null, "packedgitmmap", isPackedGitMMAP())); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
setDeltaBaseCacheLimit(rc.getInt(
|
||||
"core", null, "deltabasecachelimit", getDeltaBaseCacheLimit())); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
setPackedGitOpenFiles(rc.getInt(CONFIG_CORE_SECTION, null,
|
||||
CONFIG_KEY_PACKED_GIT_OPENFILES, getPackedGitOpenFiles()));
|
||||
setPackedGitLimit(rc.getLong(CONFIG_CORE_SECTION, null,
|
||||
CONFIG_KEY_PACKED_GIT_LIMIT, getPackedGitLimit()));
|
||||
setPackedGitWindowSize(rc.getInt(CONFIG_CORE_SECTION, null,
|
||||
CONFIG_KEY_PACKED_GIT_WINDOWSIZE, getPackedGitWindowSize()));
|
||||
setPackedGitMMAP(rc.getBoolean(CONFIG_CORE_SECTION, null,
|
||||
CONFIG_KEY_PACKED_GIT_MMAP, isPackedGitMMAP()));
|
||||
setDeltaBaseCacheLimit(rc.getInt(CONFIG_CORE_SECTION, null,
|
||||
CONFIG_KEY_DELTA_BASE_CACHE_LIMIT, getDeltaBaseCacheLimit()));
|
||||
|
||||
long maxMem = Runtime.getRuntime().maxMemory();
|
||||
long sft = rc.getLong(
|
||||
"core", null, "streamfilethreshold", getStreamFileThreshold()); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
long sft = rc.getLong(CONFIG_CORE_SECTION, null,
|
||||
CONFIG_KEY_STREAM_FILE_TRESHOLD, getStreamFileThreshold());
|
||||
sft = Math.min(sft, maxMem / 4); // don't use more than 1/4 of the heap
|
||||
sft = Math.min(sft, Integer.MAX_VALUE); // cannot exceed array length
|
||||
setStreamFileThreshold((int) sft);
|
||||
|
|
|
@ -239,12 +239,10 @@ protected AbstractTreeIterator(AbstractTreeIterator p) {
|
|||
path = p.path;
|
||||
pathOffset = p.pathLen + 1;
|
||||
|
||||
try {
|
||||
path[pathOffset - 1] = '/';
|
||||
} catch (ArrayIndexOutOfBoundsException e) {
|
||||
if (pathOffset > path.length) {
|
||||
growPath(p.pathLen);
|
||||
path[pathOffset - 1] = '/';
|
||||
}
|
||||
path[pathOffset - 1] = '/';
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -387,14 +387,13 @@ private void parseEntry() {
|
|||
tmp = pathOffset;
|
||||
for (;; tmp++) {
|
||||
c = raw[ptr++];
|
||||
if (c == 0)
|
||||
if (c == 0) {
|
||||
break;
|
||||
try {
|
||||
path[tmp] = c;
|
||||
} catch (ArrayIndexOutOfBoundsException e) {
|
||||
growPath(tmp);
|
||||
path[tmp] = c;
|
||||
}
|
||||
if (tmp >= path.length) {
|
||||
growPath(tmp);
|
||||
}
|
||||
path[tmp] = c;
|
||||
}
|
||||
pathLen = tmp;
|
||||
nextPtr = ptr + OBJECT_ID_LENGTH;
|
||||
|
|
Loading…
Reference in New Issue