HttpConfig: load user config before reading values from it
Same problem as in commit c227268: openUserConfig() just creates the FileBasedConfig object, but doesn't read the file yet. An explicit load() is needed. As HttpConfig is read-only this omission did not cause any bad effects, but it simply ignored values from the user config. Most uses of HttpConfig go through the two-argument constructor, though, where HttpConfig is given an already loaded repo config. Change-Id: Ibe7c562c17d6ef37de8b661ab7f6fa0246db01a2 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
This commit is contained in:
parent
c227268995
commit
6dab29f4b5
|
@ -44,13 +44,16 @@
|
||||||
|
|
||||||
package org.eclipse.jgit.transport;
|
package org.eclipse.jgit.transport;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.net.URISyntaxException;
|
import java.net.URISyntaxException;
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
import org.eclipse.jgit.errors.ConfigInvalidException;
|
||||||
import org.eclipse.jgit.internal.JGitText;
|
import org.eclipse.jgit.internal.JGitText;
|
||||||
import org.eclipse.jgit.lib.Config;
|
import org.eclipse.jgit.lib.Config;
|
||||||
|
import org.eclipse.jgit.storage.file.FileBasedConfig;
|
||||||
import org.eclipse.jgit.util.FS;
|
import org.eclipse.jgit.util.FS;
|
||||||
import org.eclipse.jgit.util.StringUtils;
|
import org.eclipse.jgit.util.StringUtils;
|
||||||
import org.eclipse.jgit.util.SystemReader;
|
import org.eclipse.jgit.util.SystemReader;
|
||||||
|
@ -142,13 +145,13 @@ public boolean matchConfigValue(String s) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private final int postBuffer;
|
private int postBuffer;
|
||||||
|
|
||||||
private final boolean sslVerify;
|
private boolean sslVerify;
|
||||||
|
|
||||||
private final HttpRedirectMode followRedirects;
|
private HttpRedirectMode followRedirects;
|
||||||
|
|
||||||
private final int maxRedirects;
|
private int maxRedirects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the value of the "http.postBuffer" setting
|
* @return the value of the "http.postBuffer" setting
|
||||||
|
@ -187,6 +190,32 @@ public int getMaxRedirects() {
|
||||||
* to get the configuration values for
|
* to get the configuration values for
|
||||||
*/
|
*/
|
||||||
public HttpConfig(Config config, URIish uri) {
|
public HttpConfig(Config config, URIish uri) {
|
||||||
|
init(config, uri);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a {@link HttpConfig} that reads values solely from the user
|
||||||
|
* config.
|
||||||
|
*
|
||||||
|
* @param uri
|
||||||
|
* to get the configuration values for
|
||||||
|
*/
|
||||||
|
public HttpConfig(URIish uri) {
|
||||||
|
FileBasedConfig userConfig = SystemReader.getInstance()
|
||||||
|
.openUserConfig(null, FS.DETECTED);
|
||||||
|
try {
|
||||||
|
userConfig.load();
|
||||||
|
} catch (IOException | ConfigInvalidException e) {
|
||||||
|
// Log it and then work with default values.
|
||||||
|
LOG.error(MessageFormat.format(JGitText.get().userConfigFileInvalid,
|
||||||
|
userConfig.getFile().getAbsolutePath(), e));
|
||||||
|
init(new Config(), uri);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
init(userConfig, uri);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void init(Config config, URIish uri) {
|
||||||
// Set defaults from the section first
|
// Set defaults from the section first
|
||||||
int postBufferSize = config.getInt(HTTP, POST_BUFFER_KEY,
|
int postBufferSize = config.getInt(HTTP, POST_BUFFER_KEY,
|
||||||
1 * 1024 * 1024);
|
1 * 1024 * 1024);
|
||||||
|
@ -220,17 +249,6 @@ public HttpConfig(Config config, URIish uri) {
|
||||||
maxRedirects = redirectLimit;
|
maxRedirects = redirectLimit;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a {@link HttpConfig} that reads values solely from the user
|
|
||||||
* config.
|
|
||||||
*
|
|
||||||
* @param uri
|
|
||||||
* to get the configuration values for
|
|
||||||
*/
|
|
||||||
public HttpConfig(URIish uri) {
|
|
||||||
this(SystemReader.getInstance().openUserConfig(null, FS.DETECTED), uri);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determines the best match from a set of subsection names (representing
|
* Determines the best match from a set of subsection names (representing
|
||||||
* prefix URLs) for the given {@link URIish}.
|
* prefix URLs) for the given {@link URIish}.
|
||||||
|
|
Loading…
Reference in New Issue