Browse Source

SONAR-7037 Improve logging on authentication failure

tags/5.3-RC1
Duarte Meneses 8 years ago
parent
commit
5634bf6895

+ 8
- 5
sonar-batch/src/main/java/org/sonar/batch/repository/DefaultProjectRepositoriesLoader.java 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;

+ 13
- 0
sonar-batch/src/test/java/org/sonar/batch/repository/DefaultProjectRepositoriesLoaderTest.java 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() {

Loading…
Cancel
Save