use of jetbrains.buildServer.buildTriggers.vcs.git.command.errors.GitIndexCorruptedException in project teamcity-git by JetBrains.
the class CommandUtil method isRecoverable.
public static boolean isRecoverable(@NotNull Exception e, AuthSettings authSettings, int attempt, int maxAttempts) {
boolean attemptsLeft = attempt < maxAttempts;
if (e instanceof ProcessTimeoutException || e instanceof GitExecTimeout)
return attemptsLeft;
if (!(e instanceof VcsException))
return false;
final VcsException ve = (VcsException) e;
if (isTimeoutError(ve) || isConnectionRefused(ve) || isConnectionReset(ve))
return attemptsLeft;
if (isCanceledError(ve))
return false;
if (e instanceof GitIndexCorruptedException)
return false;
if (authSettings.doesTokenNeedRefresh() && attempt == 1)
return true;
return attemptsLeft && !isRemoteAccessError(ve);
}
use of jetbrains.buildServer.buildTriggers.vcs.git.command.errors.GitIndexCorruptedException in project teamcity-git by JetBrains.
the class FetchCommandImplTest method should_throw_special_exception_when_stderr_mentions_broken_index.
@TestFor(issues = "TW-18853")
public void should_throw_special_exception_when_stderr_mentions_broken_index() throws VcsException {
AgentGitCommandLine failedCmd = new AgentGitCommandLine(null, getFakeGen(), new StubContext()) {
@Override
public ExecResult run(@NotNull GitCommandSettings settings) throws VcsException {
throw new VcsException("fatal: index file smaller than expected");
}
};
FetchCommand fetch = new FetchCommandImpl(failedCmd).setRefspec("+refs/heads/*:refs/remotes/origin/*").setTimeout(3600).setAuthSettings(getEmptyAuthSettings());
try {
fetch.call();
} catch (GitIndexCorruptedException e) {
// expected
} catch (VcsException e) {
fail("GitIndexCorruptedException should be thrown");
}
}
Aggregations