Merge "Cache config value in LdapAuthBackend"
diff --git a/Documentation/cmd-query.txt b/Documentation/cmd-query.txt
index bedfc3d..f28b4f5 100644
--- a/Documentation/cmd-query.txt
+++ b/Documentation/cmd-query.txt
@@ -37,10 +37,14 @@
to resume the query at the change that follows the last change of
the prior result set.
-Non-option arguments to this command are joined with spaces and then
-parsed as a query. This simplifies calling conventions over SSH
-by permitting operators to appear in different arguments without
-multiple levels of quoting required.
+Non-option arguments to this command are joined with spaces and
+then parsed as a query. This simplifies calling conventions over
+SSH by permitting operators to appear in different arguments.
+
+Query operators may quote values using matched curly braches
+(e.g. `reviewerin:{Developer Group}`) to sidestep issues with 2
+levels of shell quoting (caller shell invoking SSH, and the SSH
+command line parser in the server).
OPTIONS
-------
diff --git a/Documentation/config-cla.txt b/Documentation/config-cla.txt
new file mode 100644
index 0000000..ebdead4
--- /dev/null
+++ b/Documentation/config-cla.txt
@@ -0,0 +1,82 @@
+Gerrit Code Review - Contributor Aggreements
+============================================
+
+Users can be required to sign one or more contributor agreements before
+being able to submit a change in a project.
+
+Contributor agreements are global and can be configured by modifying
+the `project.config` file on the `All-Projects` project. Push permission
+needs to be granted for the `refs/meta/config` branch to be able to push
+back the `project.config` file. Consult
+link:access-control.html[access controls] for details on how access
+permissions work.
+
+To retrieve the `project.config` file, initialize a temporary Git
+repository to edit the configuration:
+====
+ mkdir cfg_dir
+ cd cfg_dir
+ git init
+====
+
+Download the existing configuration from Gerrit:
+====
+ git fetch ssh://localhost:29418/All-Projects refs/meta/config
+ git checkout FETCH_HEAD
+====
+
+Contributor agreements are defined as contributor-agreement sections in
+`project.config`:
+====
+ [contributor-agreement "Individual"]
+ description = If you are going to be contributing code on your own, this is the one you want. You can sign this one online.
+ requireContactInformation = true
+ agreementUrl = static/cla_individual.html
+ autoVerify = group CLA Accepted - Individual
+ accepted = group CLA Accepted - Individual
+====
+
+Each `contributor-agreement` section within the `project.config` file must
+have a unique name. The section name will appear in the web UI.
+
+If not already present, add the UUID of the groups used in the
+`autoVerify` and `accepted` variables in the groups file.
+
+Commit the configuration change, and push it back:
+====
+ git commit -a -m "Add Individual contributor agreement"
+ git push ssh://localhost:29418/All-Projects HEAD:refs/meta/config
+====
+
+[[contributor-agreement.name.description]]contributor-agreement.<name>.description::
++
+Short text describing the contributor agreement. This text will appear
+when the user selects an agreement.
+
+[[contributor-agreement.name.requireContactInformation]]contributor-agreement.<name>.requireContactInformation::
++
+True if the user must provide contact information when signing a
+contributor agreement. Default is false.
+
+[[contributor-agreement.name.agreementUrl]]contributor-agreement.<name>.agreementUrl::
++
+An absolute URL or a relative path to an HTML file containing the text
+of the contributor agreement. The URL must use the http or https
+scheme. The path is relative to the `gerrit.basePath` variable in
+`gerrit.config`.
+
+[[contributor-agreement.name.autoVerify]]contributor-agreement.<name>.autoVerify::
++
+If present, the user can sign the contributor agreement online. The
+value is the group to which the user will be added after signing the
+agreement. The group's UUID must also appear in the `groups` file.
+
+[[contributor-agreement.name.accepted]]contributor-agreement.<name>.accepted::
++
+List of groups that will be considered when verifying that a
+contributor agreement has been accepted. The groups' UUID must also
+appear in the `groups` file.
+
+GERRIT
+------
+Part of link:index.html[Gerrit Code Review]
diff --git a/Documentation/config-gerrit.txt b/Documentation/config-gerrit.txt
index b2df5f3..588a2fc 100644
--- a/Documentation/config-gerrit.txt
+++ b/Documentation/config-gerrit.txt
@@ -305,8 +305,9 @@
enabled for the Gerrit site. If enabled a user must complete a
contributor agreement before they can upload changes.
+
-If enabled, the admin must also insert one or more rows into
-`contributor_agreements` and create agreement files under
+If enabled, the admin must also add one or more
+link:config-cla.html[contributor-agreement sections]
+in project.config and create agreement files under
`'$site_path'/static`, so users can actually complete one or
more agreements.
+
diff --git a/Documentation/index.txt b/Documentation/index.txt
index ca8be97..7abbd79 100644
--- a/Documentation/index.txt
+++ b/Documentation/index.txt
@@ -45,6 +45,7 @@
* link:config-reverseproxy.html[Reverse Proxy]
* link:config-hooks.html[Hooks]
* link:config-mail.html[Mail Templates]
+* link:config-cla.html[Contributor Agreements]
Developer Documentation
-----------------------
diff --git a/Documentation/user-search.txt b/Documentation/user-search.txt
index 438b4e7..3bd437f 100644
--- a/Documentation/user-search.txt
+++ b/Documentation/user-search.txt
@@ -23,6 +23,7 @@
|Open changes in Foo | status:open project:Foo
|=================================================
+
Basic Change Search
-------------------
@@ -109,7 +110,6 @@
link:http://www.brics.dk/automaton/[dk.brics.automaton
library] is used for evaluation of such patterns.
-
[[branch]]
branch:'BRANCH'::
+
@@ -271,6 +271,17 @@
Change has been abandoned.
+Argument Quoting
+----------------
+
+Operator values that are not bare words (roughly A-Z, a-z, 0-9, @,
+hypen, dot and underscore) must be quoted for the query parser.
+
+Quoting is accepted as either double quotes
+(e.g. `message:"the value"`) or as matched
+curly braces (e.g. `message:{the value}`).
+
+
Boolean Operators
-----------------
@@ -427,6 +438,7 @@
of a query. Including either value in a web query may lead to
unpredictable results.
+
GERRIT
------
Part of link:index.html[Gerrit Code Review]
diff --git a/gerrit-antlr/src/main/antlr3/com/google/gerrit/server/query/Query.g b/gerrit-antlr/src/main/antlr3/com/google/gerrit/server/query/Query.g
index 74b7851..423acb4 100644
--- a/gerrit-antlr/src/main/antlr3/com/google/gerrit/server/query/Query.g
+++ b/gerrit-antlr/src/main/antlr3/com/google/gerrit/server/query/Query.g
@@ -155,6 +155,10 @@
String s = $text;
setText(s.substring(1, s.length() - 1));
}
+ | '{' ( ~('{'|'}') )* '}' {
+ String s = $text;
+ setText(s.substring(1, s.length() - 1));
+ }
;
SINGLE_WORD
diff --git a/gerrit-common/src/main/java/com/google/gerrit/common/PageLinks.java b/gerrit-common/src/main/java/com/google/gerrit/common/PageLinks.java
index 6be3a1c..67eb834 100644
--- a/gerrit-common/src/main/java/com/google/gerrit/common/PageLinks.java
+++ b/gerrit-common/src/main/java/com/google/gerrit/common/PageLinks.java
@@ -57,6 +57,10 @@
return "/c/" + ps.getParentKey() + "/" + ps.get();
}
+ public static String toProject(final Project.NameKey p) {
+ return ADMIN_PROJECTS + p.get();
+ }
+
public static String toProjectAcceess(final Project.NameKey p) {
return "/admin/projects/" + p.get() + ",access";
}
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/Dispatcher.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/Dispatcher.java
index 0229d38..6e1e0cf 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/Dispatcher.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/Dispatcher.java
@@ -650,6 +650,8 @@
return QueryScreen.forQuery("status:open");
case LINK_IDENTIY:
return new MyIdentitiesScreen();
+ case REGISTER:
+ break;
}
}
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/ContactPanelShort.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/ContactPanelShort.java
index 4fbe7a0..9ac35f0 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/ContactPanelShort.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/ContactPanelShort.java
@@ -383,6 +383,7 @@
me.setFullName(result.getFullName());
me.setPreferredEmail(result.getPreferredEmail());
Gerrit.refreshMenuBar();
+ display(me);
}
ContactInformation toContactInformation() {
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/MyIdentitiesScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/MyIdentitiesScreen.java
index 899aa03..79a6bca 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/MyIdentitiesScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/MyIdentitiesScreen.java
@@ -72,6 +72,16 @@
add(linkIdentity);
break;
}
+
+ case CLIENT_SSL_CERT_LDAP:
+ case CUSTOM_EXTENSION:
+ case DEVELOPMENT_BECOME_ANY_ACCOUNT:
+ case HTTP:
+ case HTTP_LDAP:
+ case LDAP:
+ case LDAP_BIND:
+ case OPENID_SSO:
+ break;
}
}
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectListScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectListScreen.java
index b250446..11cbcb2 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectListScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectListScreen.java
@@ -21,15 +21,13 @@
import com.google.gerrit.client.projects.ProjectMap;
import com.google.gerrit.client.rpc.ScreenLoadCallback;
import com.google.gerrit.client.ui.InlineHyperlink;
+import com.google.gerrit.client.ui.ProjectSearchLink;
import com.google.gerrit.client.ui.ProjectsTable;
import com.google.gerrit.client.ui.Screen;
import com.google.gerrit.common.PageLinks;
-import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.ui.Anchor;
import com.google.gwt.user.client.ui.FlowPanel;
-import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.Widget;
public class ProjectListScreen extends Screen {
private ProjectsTable projects;
@@ -83,7 +81,7 @@
@Override
protected void populate(final int row, final ProjectInfo k) {
FlowPanel fp = new FlowPanel();
- fp.add(createSearchLink(k));
+ fp.add(new ProjectSearchLink(k.name_key()));
fp.add(new InlineHyperlink(k.name(), link(k)));
table.setWidget(row, 1, fp);
table.setText(row, 2, k.description());
@@ -95,17 +93,6 @@
setRowItem(row, k);
}
-
- private Widget createSearchLink(final ProjectInfo projectInfo) {
- Image image = new Image(Gerrit.RESOURCES.queryProjectLink());
- InlineHyperlink h = new InlineHyperlink(" ",
- PageLinks.toProjectDashboard(projectInfo.name_key(), "default"));
- h.setTitle(Util.C.projectListQueryLink());
- DOM.insertBefore(h.getElement(), image.getElement(),
- DOM.getFirstChild(h.getElement()));
-
- return h;
- }
};
projects.setSavePointerId(PageLinks.ADMIN_PROJECTS);
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/auth/openid/OpenIdSsoPanel.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/auth/openid/OpenIdSsoPanel.java
index 85dd794..11f628c 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/auth/openid/OpenIdSsoPanel.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/auth/openid/OpenIdSsoPanel.java
@@ -63,6 +63,10 @@
FormElement.as(redirectForm.getElement()).setTarget("_top");
redirectForm.submit();
break;
+ case ERROR:
+ case NO_PROVIDER:
+ case NOT_ALLOWED:
+ break;
}
}
}
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeInfoBlock.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeInfoBlock.java
index 5e2eda4..2faf857 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeInfoBlock.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeInfoBlock.java
@@ -21,7 +21,8 @@
import com.google.gerrit.client.ui.AccountLink;
import com.google.gerrit.client.ui.BranchLink;
import com.google.gerrit.client.ui.CommentedActionDialog;
-import com.google.gerrit.client.ui.ProjectLink;
+import com.google.gerrit.client.ui.InlineHyperlink;
+import com.google.gerrit.client.ui.ProjectSearchLink;
import com.google.gerrit.common.PageLinks;
import com.google.gerrit.common.data.AccountInfoCache;
import com.google.gerrit.common.data.ChangeDetail;
@@ -34,6 +35,7 @@
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HTMLTable.CellFormatter;
+import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.InlineLabel;
import com.google.gwt.user.client.ui.TextBox;
@@ -101,7 +103,13 @@
table.setWidget(R_CHANGE_ID, 1, changeIdLabel);
table.setWidget(R_OWNER, 1, AccountLink.link(acc, chg.getOwner()));
- table.setWidget(R_PROJECT, 1, new ProjectLink(chg.getProject(), chg.getStatus()));
+
+ final HorizontalPanel p = new HorizontalPanel();
+ p.add(new ProjectSearchLink(chg.getProject()));
+ p.add(new InlineHyperlink(chg.getProject().get(),
+ PageLinks.toProject(chg.getProject())));
+ table.setWidget(R_PROJECT, 1, p);
+
table.setWidget(R_BRANCH, 1, new BranchLink(dst.getShortName(), chg
.getProject(), chg.getStatus(), dst.get(), null));
table.setWidget(R_TOPIC, 1, topic(chg));
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PatchTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PatchTable.java
index 5a1459f..5791f68 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PatchTable.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PatchTable.java
@@ -27,7 +27,6 @@
import com.google.gerrit.reviewdb.client.Patch.Key;
import com.google.gerrit.reviewdb.client.Patch.PatchType;
import com.google.gerrit.reviewdb.client.PatchSet;
-import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.core.client.Scheduler.RepeatingCommand;
import com.google.gwt.event.dom.client.ClickEvent;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java
index 09aee76..3f71e76 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/AbstractPatchContentTable.java
@@ -295,6 +295,8 @@
case INSERT:
case REPLACE:
return true;
+ case CONTEXT:
+ break;
}
} else if (o instanceof CommentList) {
return true;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchScreen.java
index 9c242d6..36eae80 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchScreen.java
@@ -514,6 +514,8 @@
break;
case FILES: topPanel.add(fileList);
break;
+ case MAIN:
+ break;
}
}
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/SideBySideTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/SideBySideTable.java
index a09b559..4ce402e 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/SideBySideTable.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/SideBySideTable.java
@@ -593,6 +593,8 @@
m.addStyleName("wdi");
}
break;
+ case REPLACE:
+ break;
}
m.append(lineHtml);
m.closeTd();
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/UnifiedDiffTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/UnifiedDiffTable.java
index 24bf41f..c143acc 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/UnifiedDiffTable.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/UnifiedDiffTable.java
@@ -70,6 +70,8 @@
case INSERT:
createCommentEditor(row + 1, PC, pl.getLineB(), (short) 1);
break;
+ case REPLACE:
+ break;
}
}
}
@@ -159,6 +161,8 @@
case INSERT:
createCommentEditor(row + 1, PC, pl.getLineB(), (short) 1);
break;
+ case REPLACE:
+ break;
}
}
@@ -537,6 +541,8 @@
m.append("+");
m.append(text);
break;
+ case REPLACE:
+ break;
}
m.closeTd();
}
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/ProjectSearchLink.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/ProjectSearchLink.java
new file mode 100644
index 0000000..bedf17b
--- /dev/null
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/ProjectSearchLink.java
@@ -0,0 +1,33 @@
+// Copyright (C) 2012 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.client.ui;
+
+import com.google.gerrit.client.Gerrit;
+import com.google.gerrit.client.admin.Util;
+import com.google.gerrit.common.PageLinks;
+import com.google.gerrit.reviewdb.client.Project;
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.ui.Image;
+
+public class ProjectSearchLink extends InlineHyperlink {
+
+ public ProjectSearchLink(Project.NameKey projectName) {
+ super(" ", PageLinks.toProjectDashboard(projectName, "default"));
+ setTitle(Util.C.projectListQueryLink());
+ final Image image = new Image(Gerrit.RESOURCES.queryProjectLink());
+ DOM.insertBefore(getElement(), image.getElement(),
+ DOM.getFirstChild(getElement()));
+ }
+}
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/GerritConfigProvider.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/GerritConfigProvider.java
index 2e26256..9b81f0d 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/GerritConfigProvider.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/GerritConfigProvider.java
@@ -107,6 +107,12 @@
config.setEditFullNameUrl(cfg.getString("auth", null, "editFullNameUrl"));
config.setHttpPasswordUrl(cfg.getString("auth", null, "httpPasswordUrl"));
break;
+
+ case CLIENT_SSL_CERT_LDAP:
+ case DEVELOPMENT_BECOME_ANY_ACCOUNT:
+ case HTTP:
+ case HTTP_LDAP:
+ break;
}
config.setUseContributorAgreements(cfg.getBoolean("auth",
"contributoragreements", false));
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/PatchSetPublishDetailFactory.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/PatchSetPublishDetailFactory.java
index 8a4320f..b38f6cf 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/PatchSetPublishDetailFactory.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/PatchSetPublishDetailFactory.java
@@ -169,6 +169,10 @@
ok++;
}
break;
+
+ case IMPOSSIBLE:
+ case REJECT:
+ break;
}
}
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitAuth.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitAuth.java
index ea12008..1524707 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitAuth.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitAuth.java
@@ -54,6 +54,15 @@
auth.string("SSO logout URL", "logoutUrl", null);
break;
}
+
+ case CLIENT_SSL_CERT_LDAP:
+ case CUSTOM_EXTENSION:
+ case DEVELOPMENT_BECOME_ANY_ACCOUNT:
+ case LDAP:
+ case LDAP_BIND:
+ case OPENID:
+ case OPENID_SSO:
+ break;
}
switch (auth_type) {
@@ -80,6 +89,14 @@
ldap.string("Group BaseDN", "groupBase", aBase);
break;
}
+
+ case CLIENT_SSL_CERT_LDAP:
+ case CUSTOM_EXTENSION:
+ case DEVELOPMENT_BECOME_ANY_ACCOUNT:
+ case HTTP:
+ case OPENID:
+ case OPENID_SSO:
+ break;
}
if (auth.getSecure("registerEmailPrivateKey") == null) {
diff --git a/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/Account.java b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/Account.java
index b23aa86..80ea82f 100644
--- a/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/Account.java
+++ b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/Account.java
@@ -169,7 +169,7 @@
/** Set the full name of the user ("Given-name Surname" style). */
public void setFullName(final String name) {
- fullName = name;
+ fullName = name != null ? name.trim() : null;
}
/** Email address the user prefers to be contacted through. */
diff --git a/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/AccountProjectWatch.java b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/AccountProjectWatch.java
index e592101..946270a 100644
--- a/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/AccountProjectWatch.java
+++ b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/AccountProjectWatch.java
@@ -142,6 +142,9 @@
case SUBMITTED_CHANGES:
return notifySubmittedChanges;
+
+ case ALL:
+ break;
}
return false;
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java b/gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java
index 3ec1e3c..4658edf 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java
@@ -247,7 +247,8 @@
changeToRevert.getDest());
change.setTopic(changeToRevert.getTopic());
- PatchSet.Id id = nextPatchSetId(git, change.currentPatchSetId());
+ PatchSet.Id id =
+ new PatchSet.Id(change.getId(), Change.INITIAL_PATCH_SET_ID);
final PatchSet ps = new PatchSet(id);
ps.setCreatedOn(change.getCreatedOn());
ps.setUploader(change.getOwner());
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/CapabilityControl.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/CapabilityControl.java
index 1524185..d9c42d5 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/account/CapabilityControl.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/CapabilityControl.java
@@ -159,6 +159,11 @@
case BATCH:
batch = true;
break;
+
+ case ALLOW:
+ case BLOCK:
+ case DENY:
+ break;
}
}
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupDetailFactory.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupDetailFactory.java
index 2e500bd..0aef40c 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupDetailFactory.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupDetailFactory.java
@@ -80,6 +80,8 @@
detail.setMembers(loadMembers());
detail.setIncludes(loadIncludes());
break;
+ case SYSTEM:
+ break;
}
detail.setAccounts(aic.create());
detail.setCanModify(control.isOwner());
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java
index ac575a0..07bbfd8 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java
@@ -581,6 +581,9 @@
autoCloseChanges(c);
}
break;
+
+ case DELETE:
+ break;
}
if (isConfig(c)) {
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/mail/OutgoingEmail.java b/gerrit-server/src/main/java/com/google/gerrit/server/mail/OutgoingEmail.java
index caa441d..187b8a7 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/mail/OutgoingEmail.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/mail/OutgoingEmail.java
@@ -332,6 +332,8 @@
case CC:
((EmailHeader.AddressList) headers.get(HDR_CC)).add(addr);
break;
+ case BCC:
+ break;
}
}
} else {
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/util/RequestScopePropagator.java b/gerrit-server/src/main/java/com/google/gerrit/server/util/RequestScopePropagator.java
index b4a44d2..f63da5439 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/util/RequestScopePropagator.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/util/RequestScopePropagator.java
@@ -14,6 +14,8 @@
package com.google.gerrit.server.util;
+import static com.google.common.base.Preconditions.checkNotNull;
+
import com.google.common.base.Throwables;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.reviewdb.server.ReviewDb;
@@ -58,11 +60,15 @@
}
/**
- * Wraps callable in a new {@link Callable} that propagates the current
- * request state when the callable is invoked. The method must be called in a
- * request scope and the returned Callable may only be invoked in a thread
- * that is not already in a request scope. The returned Callable will inherit
- * toString() from the passed in Callable. A
+ * Ensures that the current request state is available when the passed in
+ * Callable is invoked.
+ *
+ * If needed wraps the passed in Callable in a new {@link Callable} that
+ * propagates the current request state when the returned Callable is invoked.
+ * The method must be called in a request scope and the returned Callable may
+ * only be invoked in a thread that is not already in a request scope or is in
+ * the same request scope. The returned Callable will inherit toString() from
+ * the passed in Callable. A
* {@link com.google.gerrit.server.git.WorkQueue.Executor} does not accept a
* Callable, so there is no ProjectCallable implementation. Implementations of
* this method must be consistent with Guice's
@@ -80,12 +86,17 @@
* @return a new Callable which will execute in the current request scope.
*/
public final <T> Callable<T> wrap(final Callable<T> callable) {
+ final RequestContext callerContext = checkNotNull(local.getContext());
final Callable<T> wrapped =
- wrapImpl(context(local.getContext(), cleanup(callable)));
+ wrapImpl(context(callerContext, cleanup(callable)));
return new Callable<T>() {
@Override
public T call() throws Exception {
- return wrapped.call();
+ if (callerContext == local.getContext()) {
+ return callable.call();
+ } else {
+ return wrapped.call();
+ }
}
@Override
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ShowCaches.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ShowCaches.java
index bdcb4fb..f2baddd 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ShowCaches.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ShowCaches.java
@@ -250,6 +250,10 @@
case RUNNING: tasksRunning++; break;
case READY: tasksReady++; break;
case SLEEPING: tasksSleeping++; break;
+ case CANCELLED:
+ case DONE:
+ case OTHER:
+ break;
}
}
stdout.format(