diff options
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server/api/changes/ChangesImpl.java')
-rw-r--r-- | gerrit-server/src/main/java/com/google/gerrit/server/api/changes/ChangesImpl.java | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/api/changes/ChangesImpl.java b/gerrit-server/src/main/java/com/google/gerrit/server/api/changes/ChangesImpl.java index c77f86f8d2..cc39883885 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/api/changes/ChangesImpl.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/api/changes/ChangesImpl.java @@ -16,6 +16,7 @@ package com.google.gerrit.server.api.changes; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkState; +import static com.google.gerrit.server.api.ApiUtil.asRestApiException; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; @@ -24,7 +25,6 @@ import com.google.gerrit.extensions.api.changes.Changes; import com.google.gerrit.extensions.client.ListChangesOption; import com.google.gerrit.extensions.common.ChangeInfo; import com.google.gerrit.extensions.common.ChangeInput; -import com.google.gerrit.extensions.restapi.AuthException; import com.google.gerrit.extensions.restapi.IdString; import com.google.gerrit.extensions.restapi.RestApiException; import com.google.gerrit.extensions.restapi.TopLevelResource; @@ -32,14 +32,10 @@ import com.google.gerrit.extensions.restapi.Url; import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.server.change.ChangesCollection; import com.google.gerrit.server.change.CreateChange; -import com.google.gerrit.server.project.InvalidChangeOperationException; import com.google.gerrit.server.query.change.QueryChanges; -import com.google.gerrit.server.update.UpdateException; -import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.Singleton; -import java.io.IOException; import java.util.List; @Singleton @@ -77,18 +73,24 @@ class ChangesImpl implements Changes { public ChangeApi id(String id) throws RestApiException { try { return api.create(changes.parse(TopLevelResource.INSTANCE, IdString.fromUrl(id))); - } catch (OrmException e) { - throw new RestApiException("Cannot parse change", e); + } catch (Exception e) { + throw asRestApiException("Cannot parse change", e); } } @Override + public ChangeApi id(String project, int id) throws RestApiException { + return id( + Joiner.on('~').join(ImmutableList.of(Url.encode(project), Url.encode(String.valueOf(id))))); + } + + @Override public ChangeApi create(ChangeInput in) throws RestApiException { try { ChangeInfo out = createChange.apply(TopLevelResource.INSTANCE, in).value(); return api.create(changes.parse(new Change.Id(out._number))); - } catch (OrmException | IOException | InvalidChangeOperationException | UpdateException e) { - throw new RestApiException("Cannot create change", e); + } catch (Exception e) { + throw asRestApiException("Cannot create change", e); } } @@ -107,7 +109,7 @@ class ChangesImpl implements Changes { return query().withQuery(query); } - private List<ChangeInfo> get(final QueryRequest q) throws RestApiException { + private List<ChangeInfo> get(QueryRequest q) throws RestApiException { QueryChanges qc = queryProvider.get(); if (q.getQuery() != null) { qc.addQuery(q.getQuery()); @@ -132,8 +134,8 @@ class ChangesImpl implements Changes { List<ChangeInfo> infos = (List<ChangeInfo>) result; return ImmutableList.copyOf(infos); - } catch (AuthException | OrmException e) { - throw new RestApiException("Cannot query changes", e); + } catch (Exception e) { + throw asRestApiException("Cannot query changes", e); } } } |