]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-6565 Prevent IllegalStateException from spewing to server log
authorJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Thu, 11 Jun 2015 14:23:04 +0000 (16:23 +0200)
committerJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Thu, 11 Jun 2015 14:23:04 +0000 (16:23 +0200)
server/sonar-server/src/main/java/org/sonar/server/user/UserUpdater.java
server/sonar-server/src/test/java/org/sonar/server/user/UserUpdaterTest.java

index 15a34dfea5128c9e080de76b7b86960baf98caba..6e849793bbccb97047b60838750c5bc10fb72659 100644 (file)
@@ -24,6 +24,7 @@ import com.google.common.base.Joiner;
 import com.google.common.base.Predicate;
 import com.google.common.base.Strings;
 import com.google.common.collect.Iterables;
+import java.net.HttpURLConnection;
 import java.security.SecureRandom;
 import java.util.Arrays;
 import java.util.List;
@@ -44,6 +45,7 @@ import org.sonar.core.user.UserGroupDto;
 import org.sonar.server.db.DbClient;
 import org.sonar.server.exceptions.BadRequestException;
 import org.sonar.server.exceptions.Message;
+import org.sonar.server.exceptions.ServerException;
 import org.sonar.server.user.index.UserIndexer;
 import org.sonar.server.util.Validation;
 
@@ -313,7 +315,7 @@ public class UserUpdater {
   private void addDefaultGroup(DbSession dbSession, UserDto userDto) {
     final String defaultGroup = settings.getString(CoreProperties.CORE_DEFAULT_GROUP);
     if (defaultGroup == null) {
-      throw new IllegalStateException(String.format("The default group property '%s' is null", CoreProperties.CORE_DEFAULT_GROUP));
+      throw new ServerException(HttpURLConnection.HTTP_INTERNAL_ERROR, String.format("The default group property '%s' is null", CoreProperties.CORE_DEFAULT_GROUP));
     }
     List<GroupDto> userGroups = dbClient.groupDao().findByUserLogin(dbSession, userDto.getLogin());
     if (!Iterables.any(userGroups, new Predicate<GroupDto>() {
@@ -324,8 +326,9 @@ public class UserUpdater {
     })) {
       GroupDto groupDto = dbClient.groupDao().selectNullableByKey(dbSession, defaultGroup);
       if (groupDto == null) {
-        throw new IllegalStateException(String.format("The default group '%s' for new users does not exist. Please update the general security settings to fix this issue.",
-          defaultGroup));
+        throw new ServerException(HttpURLConnection.HTTP_INTERNAL_ERROR,
+          String.format("The default group '%s' for new users does not exist. Please update the general security settings to fix this issue.",
+            defaultGroup));
       }
       dbClient.userGroupDao().insert(dbSession, new UserGroupDto().setUserId(userDto.getId()).setGroupId(groupDto.getId()));
     }
index 2a0564f0651d2a9f0f250be521ca7a1cfaa9e351..29527c23b8156add94419a3b73972d7e1c44f802 100644 (file)
@@ -43,6 +43,7 @@ import org.sonar.server.db.DbClient;
 import org.sonar.server.es.EsTester;
 import org.sonar.server.exceptions.BadRequestException;
 import org.sonar.server.exceptions.Message;
+import org.sonar.server.exceptions.ServerException;
 import org.sonar.server.user.db.GroupDao;
 import org.sonar.server.user.db.UserDao;
 import org.sonar.server.user.db.UserGroupDao;
@@ -492,7 +493,7 @@ public class UserUpdaterTest {
         .setPasswordConfirmation("password")
         .setScmAccounts(newArrayList("u1", "u_1")));
     } catch (Exception e) {
-      assertThat(e).isInstanceOf(IllegalStateException.class).hasMessage("The default group property 'sonar.defaultGroup' is null");
+      assertThat(e).isInstanceOf(ServerException.class).hasMessage("The default group property 'sonar.defaultGroup' is null");
     }
   }
 
@@ -509,7 +510,7 @@ public class UserUpdaterTest {
         .setPasswordConfirmation("password")
         .setScmAccounts(newArrayList("u1", "u_1")));
     } catch (Exception e) {
-      assertThat(e).isInstanceOf(IllegalStateException.class)
+      assertThat(e).isInstanceOf(ServerException.class)
         .hasMessage("The default group 'polop' for new users does not exist. Please update the general security settings to fix this issue.");
     }
   }