Merge branch 'stable-2.8' into stable-2.9
* stable-2.8: Fix: Wrong exception mapping in ReceiveCommmits Fix REST example for removing included groups from a group rest-api-groups.txt: Correct input examples to use [] for lists Change-Id: I36518fec208e4ab101192118aebeb6c5e0d7e34c
This commit is contained in:
@@ -1004,10 +1004,10 @@ request body as a link:#groups-input[GroupsInput] entity.
|
|||||||
Content-Type: application/json;charset=UTF-8
|
Content-Type: application/json;charset=UTF-8
|
||||||
|
|
||||||
{
|
{
|
||||||
"groups": {
|
"groups": [
|
||||||
"MyGroup",
|
"MyGroup",
|
||||||
"MyOtherGroup"
|
"MyOtherGroup"
|
||||||
}
|
]
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
|
|
||||||
@@ -1086,10 +1086,10 @@ body as a link:#groups-input[GroupsInput] entity.
|
|||||||
Content-Type: application/json;charset=UTF-8
|
Content-Type: application/json;charset=UTF-8
|
||||||
|
|
||||||
{
|
{
|
||||||
"members": {
|
"groups": [
|
||||||
"MyGroup",
|
"MyGroup",
|
||||||
"MyOtherGroup"
|
"MyOtherGroup"
|
||||||
}
|
]
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
|
|
||||||
|
@@ -0,0 +1,30 @@
|
|||||||
|
//Copyright (C) 2014 The Android Open Source Project
|
||||||
|
//
|
||||||
|
//Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
//you may not use this file except in compliance with the License.
|
||||||
|
//You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
//http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
//Unless required by applicable law or agreed to in writing, software
|
||||||
|
//distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
//See the License for the specific language governing permissions and
|
||||||
|
//limitations under the License.
|
||||||
|
|
||||||
|
package com.google.gerrit.server.git;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Thrown in inserting change or patchset, e.g. OrmException or IOException.
|
||||||
|
*/
|
||||||
|
public class InsertException extends Exception {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
InsertException(final String msg) {
|
||||||
|
super(msg, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
InsertException(final String msg, final Throwable why) {
|
||||||
|
super(msg, why);
|
||||||
|
}
|
||||||
|
}
|
@@ -245,14 +245,17 @@ public class ReceiveCommits {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Function<Exception, OrmException> ORM_EXCEPTION =
|
private static final Function<Exception, InsertException> INSERT_EXCEPTION =
|
||||||
new Function<Exception, OrmException>() {
|
new Function<Exception, InsertException>() {
|
||||||
@Override
|
@Override
|
||||||
public OrmException apply(Exception input) {
|
public InsertException apply(Exception input) {
|
||||||
if (input instanceof OrmException) {
|
if (input instanceof OrmException) {
|
||||||
return (OrmException) input;
|
return new InsertException("ORM error", input);
|
||||||
}
|
}
|
||||||
return new OrmException("Error updating database", input);
|
if (input instanceof IOException) {
|
||||||
|
return new InsertException("IO error", input);
|
||||||
|
}
|
||||||
|
return new InsertException("Error inserting change/patchset", input);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -691,7 +694,7 @@ public class ReceiveCommits {
|
|||||||
log.error(String.format(
|
log.error(String.format(
|
||||||
"Cannot add patch set to %d of %s",
|
"Cannot add patch set to %d of %s",
|
||||||
e.getKey().get(), project.getName()), err);
|
e.getKey().get(), project.getName()), err);
|
||||||
} catch (OrmException err) {
|
} catch (InsertException err) {
|
||||||
reject(replace.inputCommand, "internal server error");
|
reject(replace.inputCommand, "internal server error");
|
||||||
log.error(String.format(
|
log.error(String.format(
|
||||||
"Cannot add patch set to %d of %s",
|
"Cannot add patch set to %d of %s",
|
||||||
@@ -725,7 +728,7 @@ public class ReceiveCommits {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
List<CheckedFuture<?, OrmException>> futures = Lists.newArrayList();
|
List<CheckedFuture<?, InsertException>> futures = Lists.newArrayList();
|
||||||
for (ReplaceRequest replace : replaceByChange.values()) {
|
for (ReplaceRequest replace : replaceByChange.values()) {
|
||||||
if (magicBranch != null && replace.inputCommand == magicBranch.cmd) {
|
if (magicBranch != null && replace.inputCommand == magicBranch.cmd) {
|
||||||
futures.add(replace.insertPatchSet());
|
futures.add(replace.insertPatchSet());
|
||||||
@@ -736,12 +739,12 @@ public class ReceiveCommits {
|
|||||||
futures.add(create.insertChange());
|
futures.add(create.insertChange());
|
||||||
}
|
}
|
||||||
|
|
||||||
for (CheckedFuture<?, OrmException> f : futures) {
|
for (CheckedFuture<?, InsertException> f : futures) {
|
||||||
f.checkedGet();
|
f.checkedGet();
|
||||||
}
|
}
|
||||||
magicBranch.cmd.setResult(OK);
|
magicBranch.cmd.setResult(OK);
|
||||||
} catch (OrmException err) {
|
} catch (InsertException err) {
|
||||||
log.error("Can't insert changes for " + project.getName(), err);
|
log.error("Can't insert change/patchset for " + project.getName(), err);
|
||||||
reject(magicBranch.cmd, "internal server error");
|
reject(magicBranch.cmd, "internal server error");
|
||||||
} catch (IOException err) {
|
} catch (IOException err) {
|
||||||
log.error("Can't read commits for " + project.getName(), err);
|
log.error("Can't read commits for " + project.getName(), err);
|
||||||
@@ -1545,7 +1548,7 @@ public class ReceiveCommits {
|
|||||||
ins.getPatchSet().getRefName());
|
ins.getPatchSet().getRefName());
|
||||||
}
|
}
|
||||||
|
|
||||||
CheckedFuture<Void, OrmException> insertChange() throws IOException {
|
CheckedFuture<Void, InsertException> insertChange() throws IOException {
|
||||||
rp.getRevWalk().parseBody(commit);
|
rp.getRevWalk().parseBody(commit);
|
||||||
|
|
||||||
final Thread caller = Thread.currentThread();
|
final Thread caller = Thread.currentThread();
|
||||||
@@ -1569,7 +1572,7 @@ public class ReceiveCommits {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
return Futures.makeChecked(future, ORM_EXCEPTION);
|
return Futures.makeChecked(future, INSERT_EXCEPTION);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void insertChange(ReviewDb db) throws OrmException, IOException {
|
private void insertChange(ReviewDb db) throws OrmException, IOException {
|
||||||
@@ -1873,7 +1876,7 @@ public class ReceiveCommits {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
CheckedFuture<PatchSet.Id, OrmException> insertPatchSet()
|
CheckedFuture<PatchSet.Id, InsertException> insertPatchSet()
|
||||||
throws IOException {
|
throws IOException {
|
||||||
rp.getRevWalk().parseBody(newCommit);
|
rp.getRevWalk().parseBody(newCommit);
|
||||||
|
|
||||||
@@ -1900,7 +1903,7 @@ public class ReceiveCommits {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
return Futures.makeChecked(future, ORM_EXCEPTION);
|
return Futures.makeChecked(future, INSERT_EXCEPTION);
|
||||||
}
|
}
|
||||||
|
|
||||||
PatchSet.Id insertPatchSet(ReviewDb db) throws OrmException, IOException {
|
PatchSet.Id insertPatchSet(ReviewDb db) throws OrmException, IOException {
|
||||||
@@ -2266,6 +2269,8 @@ public class ReceiveCommits {
|
|||||||
codeReviewCommit, rw, repo, project, new ArrayList<Change>(),
|
codeReviewCommit, rw, repo, project, new ArrayList<Change>(),
|
||||||
new HashMap<Change.Id, CodeReviewCommit>());
|
new HashMap<Change.Id, CodeReviewCommit>());
|
||||||
subOp.update();
|
subOp.update();
|
||||||
|
} catch (InsertException e) {
|
||||||
|
log.error("Can't insert patchset", e);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
log.error("Can't scan for changes to close", e);
|
log.error("Can't scan for changes to close", e);
|
||||||
} catch (OrmException e) {
|
} catch (OrmException e) {
|
||||||
|
Reference in New Issue
Block a user