From 08f2ab49be5983a835a5d7291ef574f381918661 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 11 May 2011 08:43:54 +0200 Subject: [PATCH] improve error handling --- .../scm/client/JerseyClientProvider.java | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/scm-clients/scm-client-impl/src/main/java/sonia/scm/client/JerseyClientProvider.java b/scm-clients/scm-client-impl/src/main/java/sonia/scm/client/JerseyClientProvider.java index b5b15e6d96..b98a17dafc 100644 --- a/scm-clients/scm-client-impl/src/main/java/sonia/scm/client/JerseyClientProvider.java +++ b/scm-clients/scm-client-impl/src/main/java/sonia/scm/client/JerseyClientProvider.java @@ -86,15 +86,15 @@ public class JerseyClientProvider implements ScmClientProvider { AssertUtil.assertIsNotEmpty(url); + String user = "anonymous"; + + if (Util.isNotEmpty(username)) + { + user = username; + } + if (logger.isInfoEnabled()) { - String user = "anonymous"; - - if (Util.isNotEmpty(username)) - { - user = username; - } - logger.info("create new session for {} with username {}", url, user); } @@ -128,14 +128,23 @@ public class JerseyClientProvider implements ScmClientProvider response = resource.get(ClientResponse.class); } - if (response.getStatus() == 401) + if (response.getStatus() != 200) { + String msg = + "server returned ".concat(String.valueOf(response.getStatus())); + if (logger.isWarnEnabled()) { - logger.warn("server returned 401 unauthorized"); + logger.warn(msg); } - throw new UnauthorizedAccessException(); + if (logger.isTraceEnabled()) + { + logger.trace("server returned content: {}", + response.getEntity(String.class)); + } + + throw new ScmClientException(msg); } ScmState state = response.getEntity(ScmState.class); @@ -149,6 +158,10 @@ public class JerseyClientProvider implements ScmClientProvider throw new ScmClientException("create ScmClientSession failed"); } + else if (logger.isInfoEnabled()) + { + logger.info("create session successfully for user {}", user); + } return new JerseyClientSession(client, urlProvider, state); }