Merge "Make IllegalLabelException a checked Exception"
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/StarredChangesUtil.java b/gerrit-server/src/main/java/com/google/gerrit/server/StarredChangesUtil.java
index 23ca117..61ab3a1 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/StarredChangesUtil.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/StarredChangesUtil.java
@@ -123,7 +123,7 @@
}
}
- public static class IllegalLabelException extends IllegalArgumentException {
+ public static class IllegalLabelException extends Exception {
private static final long serialVersionUID = 1L;
IllegalLabelException(String message) {
@@ -200,7 +200,7 @@
Change.Id changeId,
Set<String> labelsToAdd,
Set<String> labelsToRemove)
- throws OrmException {
+ throws OrmException, IllegalLabelException {
try (Repository repo = repoManager.openRepository(allUsers)) {
String refName = RefNames.refsStarredChanges(changeId, accountId);
StarRef old = readLabels(repo, refName);
@@ -304,7 +304,7 @@
}
}
- public void ignore(ChangeResource rsrc) throws OrmException {
+ public void ignore(ChangeResource rsrc) throws OrmException, IllegalLabelException {
star(
rsrc.getUser().asIdentifiedUser().getAccountId(),
rsrc.getProject(),
@@ -313,7 +313,7 @@
ImmutableSet.of());
}
- public void unignore(ChangeResource rsrc) throws OrmException {
+ public void unignore(ChangeResource rsrc) throws OrmException, IllegalLabelException {
star(
rsrc.getUser().asIdentifiedUser().getAccountId(),
rsrc.getProject(),
@@ -335,7 +335,7 @@
}
public void mute(Account.Id accountId, Project.NameKey project, Change change)
- throws OrmException {
+ throws OrmException, IllegalLabelException {
star(
accountId,
project,
@@ -345,7 +345,7 @@
}
public void unmute(Account.Id accountId, Project.NameKey project, Change change)
- throws OrmException {
+ throws OrmException, IllegalLabelException {
star(
accountId,
project,
@@ -375,7 +375,7 @@
}
public static ObjectId writeLabels(Repository repo, Collection<String> labels)
- throws IOException {
+ throws IOException, InvalidLabelsException {
validateLabels(labels);
try (ObjectInserter oi = repo.newObjectInserter()) {
ObjectId id =
@@ -387,13 +387,14 @@
}
}
- private static void checkMutuallyExclusiveLabels(Set<String> labels) {
+ private static void checkMutuallyExclusiveLabels(Set<String> labels)
+ throws MutuallyExclusiveLabelsException {
if (labels.containsAll(ImmutableSet.of(DEFAULT_LABEL, IGNORE_LABEL))) {
throw new MutuallyExclusiveLabelsException(DEFAULT_LABEL, IGNORE_LABEL);
}
}
- private static void validateLabels(Collection<String> labels) {
+ private static void validateLabels(Collection<String> labels) throws InvalidLabelsException {
if (labels == null) {
return;
}
@@ -411,7 +412,7 @@
private void updateLabels(
Repository repo, String refName, ObjectId oldObjectId, Collection<String> labels)
- throws IOException, OrmException {
+ throws IOException, OrmException, InvalidLabelsException {
try (RevWalk rw = new RevWalk(repo)) {
RefUpdate u = repo.updateRef(refName);
u.setExpectedOldObjectId(oldObjectId);
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/StarredChanges.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/StarredChanges.java
index 0e84c03..ad73a69 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/account/StarredChanges.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/StarredChanges.java
@@ -187,7 +187,7 @@
@Override
public Response<?> apply(AccountResource.StarredChange rsrc, EmptyInput in)
- throws AuthException, OrmException, IOException {
+ throws AuthException, OrmException, IOException, IllegalLabelException {
if (self.get() != rsrc.getUser()) {
throw new AuthException("not allowed remove starred change");
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/api/changes/ChangeApiImpl.java b/gerrit-server/src/main/java/com/google/gerrit/server/api/changes/ChangeApiImpl.java
index fe665a4..d006c7e 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/api/changes/ChangeApiImpl.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/api/changes/ChangeApiImpl.java
@@ -49,6 +49,7 @@
import com.google.gerrit.extensions.restapi.Response;
import com.google.gerrit.extensions.restapi.RestApiException;
import com.google.gerrit.server.StarredChangesUtil;
+import com.google.gerrit.server.StarredChangesUtil.IllegalLabelException;
import com.google.gerrit.server.change.Abandon;
import com.google.gerrit.server.change.ChangeIncludedIn;
import com.google.gerrit.server.change.ChangeJson;
@@ -668,7 +669,7 @@
} else {
unignore.apply(change, new Unignore.Input());
}
- } catch (OrmException e) {
+ } catch (OrmException | IllegalLabelException e) {
throw asRestApiException("Cannot ignore change", e);
}
}
@@ -692,7 +693,7 @@
} else {
unmute.apply(change, new Unmute.Input());
}
- } catch (OrmException e) {
+ } catch (OrmException | IllegalLabelException e) {
throw asRestApiException("Cannot mute change", e);
}
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/Ignore.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/Ignore.java
index 11e31df..46dabdf 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/Ignore.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/Ignore.java
@@ -21,6 +21,7 @@
import com.google.gerrit.extensions.restapi.RestModifyView;
import com.google.gerrit.extensions.webui.UiAction;
import com.google.gerrit.server.StarredChangesUtil;
+import com.google.gerrit.server.StarredChangesUtil.IllegalLabelException;
import com.google.gerrit.server.StarredChangesUtil.MutuallyExclusiveLabelsException;
import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
@@ -52,7 +53,7 @@
@Override
public Response<String> apply(ChangeResource rsrc, Input input)
- throws RestApiException, OrmException {
+ throws RestApiException, OrmException, IllegalLabelException {
try {
if (rsrc.isUserOwner()) {
throw new BadRequestException("cannot ignore own change");
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/Mute.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/Mute.java
index c7e0603..5fb3ef6 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/Mute.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/Mute.java
@@ -21,6 +21,7 @@
import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.StarredChangesUtil;
+import com.google.gerrit.server.StarredChangesUtil.IllegalLabelException;
import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -53,7 +54,7 @@
@Override
public Response<String> apply(ChangeResource rsrc, Input input)
- throws RestApiException, OrmException {
+ throws RestApiException, OrmException, IllegalLabelException {
if (rsrc.isUserOwner() || isMuted(rsrc.getChange())) {
// early exit for own changes and already muted changes
return Response.ok("");
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/Unignore.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/Unignore.java
index 2179ec5f..a10e754 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/Unignore.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/Unignore.java
@@ -19,6 +19,7 @@
import com.google.gerrit.extensions.restapi.RestModifyView;
import com.google.gerrit.extensions.webui.UiAction;
import com.google.gerrit.server.StarredChangesUtil;
+import com.google.gerrit.server.StarredChangesUtil.IllegalLabelException;
import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
import com.google.inject.Singleton;
@@ -49,7 +50,7 @@
@Override
public Response<String> apply(ChangeResource rsrc, Input input)
- throws RestApiException, OrmException {
+ throws RestApiException, OrmException, IllegalLabelException {
if (isIgnored(rsrc)) {
stars.unignore(rsrc);
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/Unmute.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/Unmute.java
index d50bd20..586f3e6 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/Unmute.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/Unmute.java
@@ -21,6 +21,7 @@
import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.StarredChangesUtil;
+import com.google.gerrit.server.StarredChangesUtil.IllegalLabelException;
import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -54,7 +55,7 @@
@Override
public Response<String> apply(ChangeResource rsrc, Input input)
- throws RestApiException, OrmException {
+ throws RestApiException, OrmException, IllegalLabelException {
if (rsrc.isUserOwner() || !isMuted(rsrc.getChange())) {
// early exit for own changes and not muted changes
return Response.ok("");
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_123.java b/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_123.java
index ec63141..31cfd5d 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_123.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_123.java
@@ -21,6 +21,7 @@
import com.google.gerrit.reviewdb.client.RefNames;
import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.StarredChangesUtil;
+import com.google.gerrit.server.StarredChangesUtil.IllegalLabelException;
import com.google.gerrit.server.config.AllUsersName;
import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.gwtorm.jdbc.JdbcSchema;
@@ -78,7 +79,7 @@
ObjectId.zeroId(), id, RefNames.refsStarredChanges(e.getValue(), e.getKey())));
}
bru.execute(rw, new TextProgressMonitor());
- } catch (IOException ex) {
+ } catch (IOException | IllegalLabelException ex) {
throw new OrmException(ex);
}
}