SONAR-7037 Improve logging on authentication failure

This commit is contained in:
Duarte Meneses 2015-11-24 14:16:07 +01:00
parent 0ef2119bf5
commit 5634bf6895
2 changed files with 21 additions and 5 deletions

View File

@ -19,8 +19,9 @@
*/
package org.sonar.batch.repository;
import org.sonar.api.utils.HttpDownloader.HttpException;
import com.google.common.base.Throwables;
import org.sonar.api.utils.HttpDownloader.HttpException;
import com.google.common.collect.HashBasedTable;
import com.google.common.collect.Table;
@ -59,7 +60,7 @@ public class DefaultProjectRepositoriesLoader implements ProjectRepositoriesLoad
fromCache.setValue(result.isFromCache());
}
return processStream(result.get(), projectKey);
} catch (IllegalStateException e) {
} catch (RuntimeException e) {
if (shouldThrow(e)) {
throw e;
}
@ -81,9 +82,11 @@ public class DefaultProjectRepositoriesLoader implements ProjectRepositoriesLoad
}
private static boolean shouldThrow(Exception e) {
if (e.getCause() != null && e.getCause() instanceof HttpException) {
HttpException http = (HttpException) e.getCause();
return http.getResponseCode() != 404;
for (Throwable t : Throwables.getCausalChain(e)) {
if (t instanceof HttpException) {
HttpException http = (HttpException) t;
return http.getResponseCode() != 404;
}
}
return false;

View File

@ -19,6 +19,8 @@
*/
package org.sonar.batch.repository;
import org.sonar.api.utils.MessageException;
import com.google.common.io.Resources;
import java.io.ByteArrayInputStream;
@ -81,6 +83,17 @@ public class DefaultProjectRepositoriesLoaderTest {
when(wsLoader.loadStream(anyString())).thenThrow(e);
loader.load(PROJECT_KEY, false, null);
}
@Test
public void failFastHttpErrorMessageException() {
thrown.expect(MessageException.class);
thrown.expectMessage("http error");
HttpException http = new HttpException(URI.create("uri"), 403);
MessageException e = MessageException.of("http error", http);
when(wsLoader.loadStream(anyString())).thenThrow(e);
loader.load(PROJECT_KEY, false, null);
}
@Test
public void passIssuesModeParameter() {