Merge "Migrate usages of index(), isFirst(), and isLast() to indexed for loops"
diff --git a/Documentation/rest-api-changes.txt b/Documentation/rest-api-changes.txt
index 2b6796b..a8d8769 100644
--- a/Documentation/rest-api-changes.txt
+++ b/Documentation/rest-api-changes.txt
@@ -3228,6 +3228,8 @@
* are visible to the calling user
* are not already reviewer on the change
* don't own the change
+* are not service users (unless
+ link:config.html#suggest.skipServiceUsers[skipServiceUsers] is set to `false`)
Groups can be excluded from the results by specifying the 'exclude-groups'
request parameter:
diff --git a/WORKSPACE b/WORKSPACE
index 5c38224..93cae7d 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -922,7 +922,6 @@
yarn_install(
name = "npm",
- data = ["//:twinkie.patch"],
frozen_lockfile = False,
package_json = "//:package.json",
package_path = "",
diff --git a/java/com/google/gerrit/acceptance/GerritServer.java b/java/com/google/gerrit/acceptance/GerritServer.java
index 9732d2c..4d87f4d 100644
--- a/java/com/google/gerrit/acceptance/GerritServer.java
+++ b/java/com/google/gerrit/acceptance/GerritServer.java
@@ -293,7 +293,6 @@
* @param baseConfig default config values; merged with config from {@code desc} and then written
* into {@code site/etc/gerrit.config}.
* @param site temp directory where site will live.
- * @throws Exception
*/
public static void init(Description desc, Config baseConfig, Path site) throws Exception {
checkArgument(!desc.memory(), "can't initialize site path for in-memory test: %s", desc);
@@ -347,7 +346,6 @@
* @param testSysModule additional Guice module to use.
* @param testSshModule additional Guice module to use.
* @return started server.
- * @throws Exception
*/
public static GerritServer initAndStart(
TemporaryFolder temporaryFolder,
@@ -384,7 +382,6 @@
* @param additionalArgs additional command-line arguments for the daemon program; only allowed if
* the test is not in-memory.
* @return started server.
- * @throws Exception
*/
public static GerritServer start(
Description desc,
diff --git a/java/com/google/gerrit/acceptance/SshSessionMina.java b/java/com/google/gerrit/acceptance/SshSessionMina.java
index 4d8691b..3b0ba3b 100644
--- a/java/com/google/gerrit/acceptance/SshSessionMina.java
+++ b/java/com/google/gerrit/acceptance/SshSessionMina.java
@@ -107,13 +107,11 @@
@Override
public int execAndReturnStatus(String command) throws Exception {
Process process = getMinaSession().exec(command, 0);
- InputStream in = process.getInputStream();
InputStream err = process.getErrorStream();
Scanner s = new Scanner(err, UTF_8.name()).useDelimiter("\\A");
error = s.hasNext() ? s.next() : null;
- s = new Scanner(in, UTF_8.name()).useDelimiter("\\A");
try {
return process.exitValue();
} catch (IllegalThreadStateException e) {
diff --git a/java/com/google/gerrit/acceptance/config/GlobalPluginConfig.java b/java/com/google/gerrit/acceptance/config/GlobalPluginConfig.java
index ae88e37..87063c9 100644
--- a/java/com/google/gerrit/acceptance/config/GlobalPluginConfig.java
+++ b/java/com/google/gerrit/acceptance/config/GlobalPluginConfig.java
@@ -28,12 +28,12 @@
/** Name of the plugin, corresponding to {@code $site/etc/@pluginName.config}. */
String pluginName();
- /** @see GerritConfig#name() */
+ /** See {@link GerritConfig#name()} */
String name();
- /** @see GerritConfig#value() */
+ /** See {@link GerritConfig#value()} */
String value() default "";
- /** @see GerritConfig#values() */
+ /** See {@link GerritConfig#values()} */
String[] values() default "";
}
diff --git a/java/com/google/gerrit/acceptance/testsuite/project/ProjectOperations.java b/java/com/google/gerrit/acceptance/testsuite/project/ProjectOperations.java
index 738be4d..2dd3f91 100644
--- a/java/com/google/gerrit/acceptance/testsuite/project/ProjectOperations.java
+++ b/java/com/google/gerrit/acceptance/testsuite/project/ProjectOperations.java
@@ -81,11 +81,11 @@
*
* <p>Example:
*
- * <pre>
+ * <pre>{@code
* projectOperations.forInvalidation()
* .addProjectConfigUpdater(cfg -> cfg.setString("invalidSection", null, "foo", "bar"))
* .invalidate();
- * </pre>
+ * }</pre>
*
* <p><strong>Note:</strong> The invalidation will fail with an exception if the project to
* invalidate doesn't exist.
diff --git a/java/com/google/gerrit/common/data/GitwebType.java b/java/com/google/gerrit/common/data/GitwebType.java
index 9cc408b..e69eacf 100644
--- a/java/com/google/gerrit/common/data/GitwebType.java
+++ b/java/com/google/gerrit/common/data/GitwebType.java
@@ -29,7 +29,7 @@
private char pathSeparator = '/';
private boolean urlEncode = true;
- /** @return name displayed in links. */
+ /** Returns name displayed in links. */
public String getLinkName() {
return name;
}
@@ -43,7 +43,7 @@
this.name = name;
}
- /** @return parameterized string for the branch URL. */
+ /** Returns parameterized string for the branch URL. */
public String getBranch() {
return branch;
}
@@ -57,7 +57,7 @@
branch = str;
}
- /** @return parameterized string for the tag URL. */
+ /** Returns parameterized string for the tag URL. */
public String getTag() {
return tag;
}
@@ -71,7 +71,7 @@
tag = str;
}
- /** @return parameterized string for the file URL. */
+ /** Returns parameterized string for the file URL. */
public String getFile() {
return file;
}
@@ -85,7 +85,7 @@
file = str;
}
- /** @return parameterized string for the file history URL. */
+ /** Returns parameterized string for the file history URL. */
public String getFileHistory() {
return fileHistory;
}
@@ -99,7 +99,7 @@
fileHistory = str;
}
- /** @return parameterized string for the project URL. */
+ /** Returns parameterized string for the project URL. */
public String getProject() {
return project;
}
@@ -113,7 +113,7 @@
project = str;
}
- /** @return parameterized string for the revision URL. */
+ /** Returns parameterized string for the revision URL. */
public String getRevision() {
return revision;
}
@@ -127,7 +127,7 @@
revision = str;
}
- /** @return parameterized string for the root tree URL. */
+ /** Returns parameterized string for the root tree URL. */
public String getRootTree() {
return rootTree;
}
@@ -141,7 +141,7 @@
rootTree = str;
}
- /** @return path separator used for branch and project names. */
+ /** Returns path separator used for branch and project names. */
public char getPathSeparator() {
return pathSeparator;
}
@@ -155,7 +155,7 @@
this.pathSeparator = separator;
}
- /** @return whether to URL encode path segments. */
+ /** Returns whether to URL encode path segments. */
public boolean getUrlEncode() {
return urlEncode;
}
diff --git a/java/com/google/gerrit/common/data/GlobalCapability.java b/java/com/google/gerrit/common/data/GlobalCapability.java
index 8bfd960..253266d 100644
--- a/java/com/google/gerrit/common/data/GlobalCapability.java
+++ b/java/com/google/gerrit/common/data/GlobalCapability.java
@@ -165,17 +165,17 @@
}
}
- /** @return all valid capability names. */
+ /** Returns all valid capability names. */
public static Collection<String> getAllNames() {
return Collections.unmodifiableList(NAMES_ALL);
}
- /** @return true if the name is recognized as a capability name. */
+ /** Returns true if the name is recognized as a capability name. */
public static boolean isGlobalCapability(String varName) {
return NAMES_LC.contains(varName.toLowerCase());
}
- /** @return true if the capability should have a range attached. */
+ /** Returns true if the capability should have a range attached. */
public static boolean hasRange(String varName) {
for (String n : RANGE_NAMES) {
if (n.equalsIgnoreCase(varName)) {
@@ -189,7 +189,7 @@
return Collections.unmodifiableList(Arrays.asList(RANGE_NAMES));
}
- /** @return the valid range for the capability if it has one, otherwise null. */
+ /** Returns the valid range for the capability if it has one, otherwise null. */
public static PermissionRange.WithDefaults getRange(String varName) {
if (QUERY_LIMIT.equalsIgnoreCase(varName)) {
return new PermissionRange.WithDefaults(
diff --git a/java/com/google/gerrit/elasticsearch/ElasticVersion.java b/java/com/google/gerrit/elasticsearch/ElasticVersion.java
index c6400df..b5bf44b 100644
--- a/java/com/google/gerrit/elasticsearch/ElasticVersion.java
+++ b/java/com/google/gerrit/elasticsearch/ElasticVersion.java
@@ -45,7 +45,6 @@
*
* @param version for which to return an ElasticVersion
* @return the corresponding ElasticVersion if supported
- * @throws UnsupportedVersion
*/
public static ElasticVersion forVersion(String version) {
for (ElasticVersion value : ElasticVersion.values()) {
diff --git a/java/com/google/gerrit/entities/AccessSection.java b/java/com/google/gerrit/entities/AccessSection.java
index d97bca8..69a234a 100644
--- a/java/com/google/gerrit/entities/AccessSection.java
+++ b/java/com/google/gerrit/entities/AccessSection.java
@@ -52,7 +52,7 @@
return new AutoValue_AccessSection.Builder().setName(name).setPermissions(ImmutableList.of());
}
- /** @return true if the name is likely to be a valid reference section name. */
+ /** Returns true if the name is likely to be a valid reference section name. */
public static boolean isValidRefSectionName(String name) {
return name.startsWith("refs/") || name.startsWith("^refs/");
}
diff --git a/java/com/google/gerrit/entities/AccountGroup.java b/java/com/google/gerrit/entities/AccountGroup.java
index 0b2a346..001a544 100644
--- a/java/com/google/gerrit/entities/AccountGroup.java
+++ b/java/com/google/gerrit/entities/AccountGroup.java
@@ -54,7 +54,7 @@
return uuid();
}
- /** @return true if the UUID is for a group managed within Gerrit. */
+ /** Returns true if the UUID is for a group managed within Gerrit. */
public boolean isInternalGroup() {
return get().matches("^[0-9a-f]{40}$");
}
diff --git a/java/com/google/gerrit/entities/GroupDescription.java b/java/com/google/gerrit/entities/GroupDescription.java
index e950257..7054bed 100644
--- a/java/com/google/gerrit/entities/GroupDescription.java
+++ b/java/com/google/gerrit/entities/GroupDescription.java
@@ -22,22 +22,22 @@
public class GroupDescription {
/** The Basic information required to be exposed by any Group. */
public interface Basic {
- /** @return the non-null UUID of the group. */
+ /** Returns the non-null UUID of the group. */
AccountGroup.UUID getGroupUUID();
- /** @return the non-null name of the group. */
+ /** Returns the non-null name of the group. */
String getName();
/**
- * @return optional email address to send to the group's members. If provided, Gerrit will use
- * this email address to send change notifications to the group.
+ * Returns optional email address to send to the group's members. If provided, Gerrit will use
+ * this email address to send change notifications to the group.
*/
@Nullable
String getEmailAddress();
/**
- * @return optional URL to information about the group. Typically a URL to a web page that
- * permits users to apply to join the group, or manage their membership.
+ * Returns optional URL to information about the group. Typically a URL to a web page that
+ * permits users to apply to join the group, or manage their membership.
*/
@Nullable
String getUrl();
diff --git a/java/com/google/gerrit/entities/ImmutableConfig.java b/java/com/google/gerrit/entities/ImmutableConfig.java
index a5efc14..83a44d1 100644
--- a/java/com/google/gerrit/entities/ImmutableConfig.java
+++ b/java/com/google/gerrit/entities/ImmutableConfig.java
@@ -51,27 +51,27 @@
return cfg;
}
- /** @see Config#getSections() */
+ /** See {@link Config#getSections()} */
public Set<String> getSections() {
return cfg.getSections();
}
- /** @see Config#getNames(String) */
+ /** See {@link Config#getNames(String)} */
public Set<String> getNames(String section) {
return cfg.getNames(section);
}
- /** @see Config#getNames(String, String) */
+ /** See {@link Config#getNames(String, String)} */
public Set<String> getNames(String section, String subsection) {
return cfg.getNames(section, subsection);
}
- /** @see Config#getStringList(String, String, String) */
+ /** See {@link Config#getStringList(String, String, String)} */
public String[] getStringList(String section, String subsection, String name) {
return cfg.getStringList(section, subsection, name);
}
- /** @see Config#getSubsections(String) */
+ /** See {@link Config#getSubsections(String)} */
public Set<String> getSubsections(String section) {
return cfg.getSubsections(section);
}
diff --git a/java/com/google/gerrit/entities/Permission.java b/java/com/google/gerrit/entities/Permission.java
index 322c79e..95164bd 100644
--- a/java/com/google/gerrit/entities/Permission.java
+++ b/java/com/google/gerrit/entities/Permission.java
@@ -95,7 +95,7 @@
LABEL_AS_INDEX = NAMES_LC.indexOf(Permission.LABEL_AS.toLowerCase());
}
- /** @return true if the name is recognized as a permission name. */
+ /** Returns true if the name is recognized as a permission name. */
public static boolean isPermission(String varName) {
return isLabel(varName) || isLabelAs(varName) || NAMES_LC.contains(varName.toLowerCase());
}
@@ -104,22 +104,22 @@
return isLabel(varName) || isLabelAs(varName);
}
- /** @return true if the permission name is actually for a review label. */
+ /** Returns true if the permission name is actually for a review label. */
public static boolean isLabel(String varName) {
return varName.startsWith(LABEL) && LABEL.length() < varName.length();
}
- /** @return true if the permission is for impersonated review labels. */
+ /** Returns true if the permission is for impersonated review labels. */
public static boolean isLabelAs(String var) {
return var.startsWith(LABEL_AS) && LABEL_AS.length() < var.length();
}
- /** @return permission name for the given review label. */
+ /** Returns permission name for the given review label. */
public static String forLabel(String labelName) {
return LABEL + labelName;
}
- /** @return permission name to apply a label for another user. */
+ /** Returns permission name to apply a label for another user. */
public static String forLabelAs(String labelName) {
return LABEL_AS + labelName;
}
diff --git a/java/com/google/gerrit/entities/PermissionRange.java b/java/com/google/gerrit/entities/PermissionRange.java
index fa9f4c2..d283069 100644
--- a/java/com/google/gerrit/entities/PermissionRange.java
+++ b/java/com/google/gerrit/entities/PermissionRange.java
@@ -46,7 +46,7 @@
defaultMax = max;
}
- /** @return all values between {@link #getMin()} and {@link #getMax()} */
+ /** Returns all values between {@link #getMin()} and {@link #getMax()} */
public List<Integer> getValuesAsList() {
ArrayList<Integer> r = new ArrayList<>(getRangeSize());
for (int i = min; i <= max; i++) {
@@ -55,7 +55,7 @@
return r;
}
- /** @return number of values between {@link #getMin()} and {@link #getMax()} */
+ /** Returns number of values between {@link #getMin()} and {@link #getMax()} */
public int getRangeSize() {
return max - min;
}
diff --git a/java/com/google/gerrit/extensions/BUILD b/java/com/google/gerrit/extensions/BUILD
index 21949f7..f36018b 100644
--- a/java/com/google/gerrit/extensions/BUILD
+++ b/java/com/google/gerrit/extensions/BUILD
@@ -34,6 +34,7 @@
"//java/com/google/gerrit/common:annotations",
"//lib:guava",
"//lib/auto:auto-value-annotations",
+ "//lib/errorprone:annotations",
"//lib/guice",
"//lib/guice:guice-assistedinject",
],
diff --git a/java/com/google/gerrit/extensions/api/accounts/Accounts.java b/java/com/google/gerrit/extensions/api/accounts/Accounts.java
index 15fca9a..285b385 100644
--- a/java/com/google/gerrit/extensions/api/accounts/Accounts.java
+++ b/java/com/google/gerrit/extensions/api/accounts/Accounts.java
@@ -38,7 +38,11 @@
*/
AccountApi id(String id) throws RestApiException;
- /** @see #id(String) */
+ /**
+ * Look up an account by ID. #id(String)
+ *
+ * <p>See #id(String)
+ */
AccountApi id(int id) throws RestApiException;
/**
diff --git a/java/com/google/gerrit/extensions/api/changes/ChangeApi.java b/java/com/google/gerrit/extensions/api/changes/ChangeApi.java
index ab98aa6..690ba4e 100644
--- a/java/com/google/gerrit/extensions/api/changes/ChangeApi.java
+++ b/java/com/google/gerrit/extensions/api/changes/ChangeApi.java
@@ -324,7 +324,6 @@
* Get hashtags on a change.
*
* @return hashtags
- * @throws RestApiException
*/
Set<String> getHashtags() throws RestApiException;
@@ -359,7 +358,6 @@
*
* @return comments in a map keyed by path; comments have the {@code revision} field set to
* indicate their patch set.
- * @throws RestApiException
* @deprecated Callers should use {@link #commentsRequest()} instead
*/
@Deprecated
@@ -372,7 +370,6 @@
*
* @return comments as a list; comments have the {@code revision} field set to indicate their
* patch set.
- * @throws RestApiException
* @deprecated Callers should use {@link #commentsRequest()} instead
*/
@Deprecated
@@ -393,7 +390,6 @@
*
* @return robot comments in a map keyed by path; robot comments have the {@code revision} field
* set to indicate their patch set.
- * @throws RestApiException
*/
Map<String, List<RobotCommentInfo>> robotComments() throws RestApiException;
@@ -402,7 +398,6 @@
*
* @return drafts in a map keyed by path; comments have the {@code revision} field set to indicate
* their patch set.
- * @throws RestApiException
*/
default Map<String, List<CommentInfo>> drafts() throws RestApiException {
return draftsRequest().get();
@@ -413,7 +408,6 @@
*
* @return drafts as a list; comments have the {@code revision} field set to indicate their patch
* set.
- * @throws RestApiException
*/
default List<CommentInfo> draftsAsList() throws RestApiException {
return draftsRequest().getAsList();
@@ -443,7 +437,6 @@
* Get all messages of a change with detailed account info.
*
* @return a list of messages sorted by their creation time.
- * @throws RestApiException
*/
List<ChangeMessageInfo> messages() throws RestApiException;
@@ -466,7 +459,6 @@
*
* @return comments in a map keyed by path; comments have the {@code revision} field set to
* indicate their patch set.
- * @throws RestApiException
*/
public abstract Map<String, List<CommentInfo>> get() throws RestApiException;
diff --git a/java/com/google/gerrit/extensions/api/changes/FileApi.java b/java/com/google/gerrit/extensions/api/changes/FileApi.java
index 26f9452..e20ac56 100644
--- a/java/com/google/gerrit/extensions/api/changes/FileApi.java
+++ b/java/com/google/gerrit/extensions/api/changes/FileApi.java
@@ -29,10 +29,18 @@
/** Diff against the revision's parent version of the file. */
DiffInfo diff() throws RestApiException;
- /** @param base revision id of the revision to be used as the diff base */
+ /**
+ * Diff against the specified base
+ *
+ * @param base revision id of the revision to be used as the diff base
+ */
DiffInfo diff(String base) throws RestApiException;
- /** @param parent 1-based parent number to diff against */
+ /**
+ * Diff against the specified parent
+ *
+ * @param parent 1-based parent number to diff against
+ */
DiffInfo diff(int parent) throws RestApiException;
/**
diff --git a/java/com/google/gerrit/extensions/api/changes/RevisionApi.java b/java/com/google/gerrit/extensions/api/changes/RevisionApi.java
index 229b9d4..1307516 100644
--- a/java/com/google/gerrit/extensions/api/changes/RevisionApi.java
+++ b/java/com/google/gerrit/extensions/api/changes/RevisionApi.java
@@ -160,7 +160,6 @@
*
* @param format the format of the archive
* @return the archive as {@link BinaryResult}
- * @throws RestApiException
*/
BinaryResult getArchive(ArchiveFormat format) throws RestApiException;
diff --git a/java/com/google/gerrit/extensions/api/config/Config.java b/java/com/google/gerrit/extensions/api/config/Config.java
index eb7288d..041e1dd 100644
--- a/java/com/google/gerrit/extensions/api/config/Config.java
+++ b/java/com/google/gerrit/extensions/api/config/Config.java
@@ -17,7 +17,7 @@
import com.google.gerrit.extensions.restapi.NotImplementedException;
public interface Config {
- /** @return An API for getting server related configurations. */
+ /** Returns an API for getting server related configurations. */
Server server();
/**
diff --git a/java/com/google/gerrit/extensions/api/config/ConsistencyCheckInfo.java b/java/com/google/gerrit/extensions/api/config/ConsistencyCheckInfo.java
index e582f1b..9fb57ad 100644
--- a/java/com/google/gerrit/extensions/api/config/ConsistencyCheckInfo.java
+++ b/java/com/google/gerrit/extensions/api/config/ConsistencyCheckInfo.java
@@ -14,6 +14,7 @@
package com.google.gerrit.extensions.api.config;
+import com.google.errorprone.annotations.FormatMethod;
import java.util.List;
import java.util.Objects;
@@ -80,10 +81,12 @@
return status.name() + ": " + message;
}
+ @FormatMethod
public static ConsistencyProblemInfo warning(String fmt, Object... args) {
return new ConsistencyProblemInfo(Status.WARNING, String.format(fmt, args));
}
+ @FormatMethod
public static ConsistencyProblemInfo error(String fmt, Object... args) {
return new ConsistencyProblemInfo(Status.ERROR, String.format(fmt, args));
}
diff --git a/java/com/google/gerrit/extensions/api/config/Server.java b/java/com/google/gerrit/extensions/api/config/Server.java
index 70d1bff..8b69ded 100644
--- a/java/com/google/gerrit/extensions/api/config/Server.java
+++ b/java/com/google/gerrit/extensions/api/config/Server.java
@@ -24,7 +24,7 @@
import java.util.List;
public interface Server {
- /** @return Version of server. */
+ /** Returns version of server. */
String getVersion() throws RestApiException;
ServerInfo getInfo() throws RestApiException;
diff --git a/java/com/google/gerrit/extensions/api/groups/GroupApi.java b/java/com/google/gerrit/extensions/api/groups/GroupApi.java
index 067f120..e1b3a9f 100644
--- a/java/com/google/gerrit/extensions/api/groups/GroupApi.java
+++ b/java/com/google/gerrit/extensions/api/groups/GroupApi.java
@@ -24,53 +24,49 @@
import java.util.List;
public interface GroupApi {
- /** @return group info with no {@code ListGroupsOption}s set. */
+ /** Returns group info with no {@code ListGroupsOption}s set. */
GroupInfo get() throws RestApiException;
- /** @return group info with all {@code ListGroupsOption}s set. */
+ /** Returns group info with all {@code ListGroupsOption}s set. */
GroupInfo detail() throws RestApiException;
- /** @return group name. */
+ /** Returns group name. */
String name() throws RestApiException;
/**
* Set group name.
*
* @param name new name.
- * @throws RestApiException
*/
void name(String name) throws RestApiException;
- /** @return owning group info. */
+ /** Returns owning group info. */
GroupInfo owner() throws RestApiException;
/**
* Set group owner.
*
* @param owner identifier of new group owner.
- * @throws RestApiException
*/
void owner(String owner) throws RestApiException;
- /** @return group description. */
+ /** Returns group description. */
String description() throws RestApiException;
/**
* Set group decsription.
*
* @param description new description.
- * @throws RestApiException
*/
void description(String description) throws RestApiException;
- /** @return group options. */
+ /** Returns group options. */
GroupOptionsInfo options() throws RestApiException;
/**
* Set group options.
*
* @param options new options.
- * @throws RestApiException
*/
void options(GroupOptionsInfo options) throws RestApiException;
@@ -78,7 +74,6 @@
* List group members, non-recursively.
*
* @return group members.
- * @throws RestApiException
*/
List<AccountInfo> members() throws RestApiException;
@@ -87,7 +82,6 @@
*
* @param recursive whether to recursively included groups.
* @return group members.
- * @throws RestApiException
*/
List<AccountInfo> members(boolean recursive) throws RestApiException;
@@ -96,7 +90,6 @@
*
* @param members list of member identifiers, in any format accepted by {@link
* com.google.gerrit.extensions.api.accounts.Accounts#id(String)}
- * @throws RestApiException
*/
void addMembers(List<String> members) throws RestApiException;
@@ -105,7 +98,6 @@
*
* @param members list of member identifiers, in any format accepted by {@link
* com.google.gerrit.extensions.api.accounts.Accounts#id(String)}
- * @throws RestApiException
*/
default void addMembers(String... members) throws RestApiException {
addMembers(Arrays.asList(members));
@@ -116,7 +108,6 @@
*
* @param members list of member identifiers, in any format accepted by {@link
* com.google.gerrit.extensions.api.accounts.Accounts#id(String)}
- * @throws RestApiException
*/
void removeMembers(List<String> members) throws RestApiException;
@@ -125,7 +116,6 @@
*
* @param members list of member identifiers, in any format accepted by {@link
* com.google.gerrit.extensions.api.accounts.Accounts#id(String)}
- * @throws RestApiException
*/
default void removeMembers(String... members) throws RestApiException {
removeMembers(Arrays.asList(members));
@@ -135,7 +125,6 @@
* Lists the subgroups of this group.
*
* @return the found subgroups
- * @throws RestApiException
*/
List<GroupInfo> includedGroups() throws RestApiException;
@@ -143,7 +132,6 @@
* Adds subgroups to this group.
*
* @param groups list of group identifiers, in any format accepted by {@link Groups#id(String)}
- * @throws RestApiException
*/
void addGroups(List<String> groups) throws RestApiException;
@@ -151,7 +139,6 @@
* Adds subgroups to this group.
*
* @param groups list of group identifiers, in any format accepted by {@link Groups#id(String)}
- * @throws RestApiException
*/
default void addGroups(String... groups) throws RestApiException {
addGroups(Arrays.asList(groups));
@@ -161,7 +148,6 @@
* Removes subgroups from this group.
*
* @param groups list of group identifiers, in any format accepted by {@link Groups#id(String)}
- * @throws RestApiException
*/
void removeGroups(List<String> groups) throws RestApiException;
@@ -169,7 +155,6 @@
* Removes subgroups from this group.
*
* @param groups list of group identifiers, in any format accepted by {@link Groups#id(String)}
- * @throws RestApiException
*/
default void removeGroups(String... groups) throws RestApiException {
removeGroups(Arrays.asList(groups));
@@ -179,7 +164,6 @@
* Returns the audit log of the group.
*
* @return list of audit events of the group.
- * @throws RestApiException
*/
List<? extends GroupAuditEventInfo> auditLog() throws RestApiException;
@@ -187,8 +171,6 @@
* Reindexes the group.
*
* <p>Only supported for internal groups.
- *
- * @throws RestApiException
*/
void index() throws RestApiException;
diff --git a/java/com/google/gerrit/extensions/api/groups/Groups.java b/java/com/google/gerrit/extensions/api/groups/Groups.java
index 81b5f47..1a46930 100644
--- a/java/com/google/gerrit/extensions/api/groups/Groups.java
+++ b/java/com/google/gerrit/extensions/api/groups/Groups.java
@@ -47,7 +47,7 @@
/** Create a new group. */
GroupApi create(GroupInput input) throws RestApiException;
- /** @return new request for listing groups. */
+ /** Returns new request for listing groups. */
ListRequest list();
/**
diff --git a/java/com/google/gerrit/extensions/auth/oauth/OAuthServiceProvider.java b/java/com/google/gerrit/extensions/auth/oauth/OAuthServiceProvider.java
index 417f55a..c3d760b 100644
--- a/java/com/google/gerrit/extensions/auth/oauth/OAuthServiceProvider.java
+++ b/java/com/google/gerrit/extensions/auth/oauth/OAuthServiceProvider.java
@@ -40,9 +40,7 @@
* After establishing of secure communication channel, this method supossed to access the
* protected resoure and retrieve the username.
*
- * @param token
* @return OAuth user information
- * @throws IOException
*/
OAuthUserInfo getUserInfo(OAuthToken token) throws IOException;
diff --git a/java/com/google/gerrit/extensions/common/ChangeInfoDiffer.java b/java/com/google/gerrit/extensions/common/ChangeInfoDiffer.java
index 0447e80..ba5e323 100644
--- a/java/com/google/gerrit/extensions/common/ChangeInfoDiffer.java
+++ b/java/com/google/gerrit/extensions/common/ChangeInfoDiffer.java
@@ -143,7 +143,7 @@
}
}
- /** @return {@code null} if nothing has been added to {@code oldCollection} */
+ /** Returns {@code null} if nothing has been added to {@code oldCollection} */
private static ImmutableList<?> getAddedForCollection(
Collection<?> oldCollection, Collection<?> newCollection) {
ImmutableList<?> notInOldCollection = getAdditions(oldCollection, newCollection);
@@ -165,7 +165,7 @@
return duplicatesMap.values().stream().flatMap(Collection::stream).collect(toImmutableList());
}
- /** @return {@code null} if nothing has been added to {@code oldMap} */
+ /** Returns {@code null} if nothing has been added to {@code oldMap} */
private static ImmutableMap<Object, Object> getAddedForMap(Map<?, ?> oldMap, Map<?, ?> newMap) {
ImmutableMap.Builder<Object, Object> additionsBuilder = ImmutableMap.builder();
for (Map.Entry<?, ?> entry : newMap.entrySet()) {
diff --git a/java/com/google/gerrit/extensions/common/TestSubmitRuleInfo.java b/java/com/google/gerrit/extensions/common/TestSubmitRuleInfo.java
index deb03b0..2af9a767 100644
--- a/java/com/google/gerrit/extensions/common/TestSubmitRuleInfo.java
+++ b/java/com/google/gerrit/extensions/common/TestSubmitRuleInfo.java
@@ -19,7 +19,7 @@
import java.util.Objects;
public class TestSubmitRuleInfo {
- /** @see com.google.gerrit.entities.SubmitRecord.Status */
+ /** See {@link com.google.gerrit.entities.SubmitRecord.Status} */
public String status;
public String errorMessage;
diff --git a/java/com/google/gerrit/extensions/conditions/BooleanCondition.java b/java/com/google/gerrit/extensions/conditions/BooleanCondition.java
index 162dd99..9c354fb 100644
--- a/java/com/google/gerrit/extensions/conditions/BooleanCondition.java
+++ b/java/com/google/gerrit/extensions/conditions/BooleanCondition.java
@@ -48,7 +48,7 @@
BooleanCondition() {}
- /** @return evaluate the condition and return its value. */
+ /** Evaluates the condition and return its value. */
public abstract boolean value();
/**
@@ -63,7 +63,9 @@
* Reduce evaluation tree by cutting off branches that evaluate trivially and replacing them with
* a leave note corresponding to the value the branch evaluated to.
*
- * <p><code>
+ * <p>
+ *
+ * <pre>{@code
* Example 1 (T=True, F=False, C=non-trivial check):
* OR
* / \ => T
@@ -76,7 +78,7 @@
* AND
* / \ => F
* T F
- * </code>
+ * }</pre>
*
* <p>There is no guarantee that the resulting tree is minimal. The only guarantee made is that
* branches that evaluate trivially will be cut off and replaced by primitive values.
diff --git a/java/com/google/gerrit/extensions/config/DownloadScheme.java b/java/com/google/gerrit/extensions/config/DownloadScheme.java
index d81657a..96b5878 100644
--- a/java/com/google/gerrit/extensions/config/DownloadScheme.java
+++ b/java/com/google/gerrit/extensions/config/DownloadScheme.java
@@ -26,12 +26,12 @@
*/
public abstract String getUrl(String project);
- /** @return whether this scheme requires authentication */
+ /** Returns whether this scheme requires authentication */
public abstract boolean isAuthRequired();
- /** @return whether this scheme supports authentication */
+ /** Returns whether this scheme supports authentication */
public abstract boolean isAuthSupported();
- /** @return whether the download scheme is enabled */
+ /** Returns whether the download scheme is enabled */
public abstract boolean isEnabled();
}
diff --git a/java/com/google/gerrit/extensions/events/GarbageCollectorListener.java b/java/com/google/gerrit/extensions/events/GarbageCollectorListener.java
index edb3e69..45c33c9 100644
--- a/java/com/google/gerrit/extensions/events/GarbageCollectorListener.java
+++ b/java/com/google/gerrit/extensions/events/GarbageCollectorListener.java
@@ -22,8 +22,9 @@
public interface GarbageCollectorListener {
interface Event extends ProjectEvent {
/**
- * @return Properties describing the result of the garbage collection performed by JGit.
- * @see org.eclipse.jgit.api.GarbageCollectCommand#call()
+ * Returns properties describing the result of the garbage collection performed by JGit.
+ *
+ * <p>See {@link org.eclipse.jgit.api.GarbageCollectCommand#call }
*/
Properties getStatistics();
}
diff --git a/java/com/google/gerrit/extensions/restapi/BinaryResult.java b/java/com/google/gerrit/extensions/restapi/BinaryResult.java
index bdddfd9..2ee376e 100644
--- a/java/com/google/gerrit/extensions/restapi/BinaryResult.java
+++ b/java/com/google/gerrit/extensions/restapi/BinaryResult.java
@@ -63,7 +63,7 @@
private boolean base64;
private String attachmentName;
- /** @return the MIME type of the result, for HTTP clients. */
+ /** Returns the MIME type of the result, for HTTP clients. */
public String getContentType() {
Charset enc = getCharacterEncoding();
if (enc != null) {
@@ -100,7 +100,7 @@
return this;
}
- /** @return length in bytes of the result; -1 if not known. */
+ /** Returns length in bytes of the result; -1 if not known. */
public long getContentLength() {
return contentLength;
}
@@ -111,7 +111,7 @@
return this;
}
- /** @return true if this result can be gzip compressed to clients. */
+ /** Returns true if this result can be gzip compressed to clients. */
public boolean canGzip() {
return gzip;
}
@@ -122,7 +122,7 @@
return this;
}
- /** @return true if the result must be base64 encoded. */
+ /** Returns true if the result must be base64 encoded. */
public boolean isBase64() {
return base64;
}
diff --git a/java/com/google/gerrit/extensions/restapi/IdString.java b/java/com/google/gerrit/extensions/restapi/IdString.java
index 736c3ba..b2538fa 100644
--- a/java/com/google/gerrit/extensions/restapi/IdString.java
+++ b/java/com/google/gerrit/extensions/restapi/IdString.java
@@ -36,17 +36,17 @@
urlEncoded = s;
}
- /** @return the decoded value of the string. */
+ /** Returns the decoded value of the string. */
public String get() {
return Url.decode(urlEncoded);
}
- /** @return true if the string is the empty string. */
+ /** Returns true if the string is the empty string. */
public boolean isEmpty() {
return urlEncoded.isEmpty();
}
- /** @return the original URL encoding supplied by the client. */
+ /** Returns the original URL encoding supplied by the client. */
public String encoded() {
return urlEncoded;
}
diff --git a/java/com/google/gerrit/extensions/restapi/RestResource.java b/java/com/google/gerrit/extensions/restapi/RestResource.java
index cc5d48d..3c8144a 100644
--- a/java/com/google/gerrit/extensions/restapi/RestResource.java
+++ b/java/com/google/gerrit/extensions/restapi/RestResource.java
@@ -26,7 +26,7 @@
/** A resource with a last modification date. */
public interface HasLastModified {
- /** @return time for the Last-Modified header. HTTP truncates the header value to seconds. */
+ /** Returns time for the Last-Modified header. HTTP truncates the header value to seconds. */
Timestamp getLastModified();
}
diff --git a/java/com/google/gerrit/extensions/webui/WebUiPlugin.java b/java/com/google/gerrit/extensions/webui/WebUiPlugin.java
index 2d49e1c..4f129b0 100644
--- a/java/com/google/gerrit/extensions/webui/WebUiPlugin.java
+++ b/java/com/google/gerrit/extensions/webui/WebUiPlugin.java
@@ -44,7 +44,7 @@
private String pluginName;
- /** @return installed name of the plugin that provides this UI feature. */
+ /** Returns installed name of the plugin that provides this UI feature. */
public final String getPluginName() {
return pluginName;
}
@@ -54,7 +54,7 @@
this.pluginName = pluginName;
}
- /** @return path to initialization script within the plugin's JAR. */
+ /** Returns path to initialization script within the plugin's JAR. */
public abstract String getJavaScriptResourcePath();
@Override
diff --git a/java/com/google/gerrit/git/GitUpdateFailureException.java b/java/com/google/gerrit/git/GitUpdateFailureException.java
index 76ef217..7fcb828 100644
--- a/java/com/google/gerrit/git/GitUpdateFailureException.java
+++ b/java/com/google/gerrit/git/GitUpdateFailureException.java
@@ -46,12 +46,12 @@
.collect(toImmutableList());
}
- /** @return the names of the refs for which the update failed. */
+ /** Returns the names of the refs for which the update failed. */
public ImmutableList<String> getFailedRefs() {
return failures.stream().map(GitUpdateFailure::ref).collect(toImmutableList());
}
- /** @return the failures that caused this exception. */
+ /** Returns the failures that caused this exception. */
@UsedAt(UsedAt.Project.GOOGLE)
public ImmutableList<GitUpdateFailure> getFailures() {
return failures;
diff --git a/java/com/google/gerrit/gpg/CheckResult.java b/java/com/google/gerrit/gpg/CheckResult.java
index 8655b2a..2743e74 100644
--- a/java/com/google/gerrit/gpg/CheckResult.java
+++ b/java/com/google/gerrit/gpg/CheckResult.java
@@ -62,22 +62,22 @@
this.problems = problems;
}
- /** @return whether the result has status {@link Status#OK} or better. */
+ /** Returns whether the result has status {@link Status#OK} or better. */
public boolean isOk() {
return status.compareTo(Status.OK) >= 0;
}
- /** @return whether the result has status {@link Status#TRUSTED} or better. */
+ /** Returns whether the result has status {@link Status#TRUSTED} or better. */
public boolean isTrusted() {
return status.compareTo(Status.TRUSTED) >= 0;
}
- /** @return the status enum value associated with the object. */
+ /** Returns the status enum value associated with the object. */
public Status getStatus() {
return status;
}
- /** @return any problems encountered during checking. */
+ /** Returns any problems encountered during checking. */
public List<String> getProblems() {
return problems;
}
diff --git a/java/com/google/gerrit/gpg/PushCertificateChecker.java b/java/com/google/gerrit/gpg/PushCertificateChecker.java
index 82b3892..36a4af7 100644
--- a/java/com/google/gerrit/gpg/PushCertificateChecker.java
+++ b/java/com/google/gerrit/gpg/PushCertificateChecker.java
@@ -154,8 +154,11 @@
protected abstract Repository getRepository() throws IOException;
/**
+ * Specifies whether this repository should be closed before returning froms {@link
+ * #check(PushCertificate)}
+ *
* @param repo a repository previously returned by {@link #getRepository()}.
- * @return whether this repository should be closed before returning from {@link
+ * @return true if this repository should be closed before returning from {@link
* #check(PushCertificate)}.
*/
protected abstract boolean shouldClose(Repository repo);
diff --git a/java/com/google/gerrit/gpg/testing/TestKeys.java b/java/com/google/gerrit/gpg/testing/TestKeys.java
index de66889..0423474 100644
--- a/java/com/google/gerrit/gpg/testing/TestKeys.java
+++ b/java/com/google/gerrit/gpg/testing/TestKeys.java
@@ -436,13 +436,13 @@
/**
* A key with an additional user ID.
*
- * <pre>
+ * <pre>{@code
* pub 2048R/98C51DBF 2015-07-30
* Key fingerprint = 42B3 294D 1924 D7EB AF4A A99F 5024 BB44 98C5 1DBF
* uid foo:myId
* uid Testuser Five <test5@example.com>
* sub 2048R/C781A9E3 2015-07-30
- * </pre>
+ * }</pre>
*/
public static TestKey validKeyWithSecondUserId() {
return new TestKey(
@@ -1033,13 +1033,13 @@
/**
* Master Key without expiration with subkey with expiration.
*
- * <pre>
+ * <pre>{@code
* pub rsa1024 2018-11-17 [C]
* 5734 2C37 982A 843B 19C0 622B 6AAF 2D26 B481 02DB
* uid [ultimate] Testuser 10 <testuser10@example.com>
* sub rsa1024 2018-11-17 [S] [expires: 2065-11-05]
* 0A4A 9660 1B96 2DFC E898 E686 4305 C92E 626E B485
- * </pre>
+ * }</pre>
*/
public static TestKey validKeyWithoutExpirationWithSubkeyWithExpiration() throws Exception {
return new TestKey(
diff --git a/java/com/google/gerrit/httpd/RequestMetricsFilter.java b/java/com/google/gerrit/httpd/RequestMetricsFilter.java
index c97b9ad..0ff1a79 100644
--- a/java/com/google/gerrit/httpd/RequestMetricsFilter.java
+++ b/java/com/google/gerrit/httpd/RequestMetricsFilter.java
@@ -55,17 +55,17 @@
startedMemory = threadMxBean.getCurrentThreadAllocatedBytes();
}
- /** @return total CPU time in milliseconds for executing request */
+ /** Returns total CPU time in milliseconds for executing request */
public long getTotalCpuTime() {
return (threadMxBean.getCurrentThreadCpuTime() - startedTotalCpu) / 1_000_000;
}
- /** @return CPU time in user mode in milliseconds for executing request */
+ /** Returns CPU time in user mode in milliseconds for executing request */
public long getUserCpuTime() {
return (threadMxBean.getCurrentThreadUserTime() - startedUserCpu) / 1_000_000;
}
- /** @return memory allocated in bytes for executing request */
+ /** Returns memory allocated in bytes for executing request */
public long getAllocatedMemory() {
return startedMemory == -1
? -1
diff --git a/java/com/google/gerrit/httpd/restapi/RestApiServlet.java b/java/com/google/gerrit/httpd/restapi/RestApiServlet.java
index 91659f8..369ea29 100644
--- a/java/com/google/gerrit/httpd/restapi/RestApiServlet.java
+++ b/java/com/google/gerrit/httpd/restapi/RestApiServlet.java
@@ -1426,7 +1426,6 @@
* @param config config parameters for the JSON formatting
* @param result the object that should be formatted as JSON
* @return the length of the response
- * @throws IOException
*/
public static long replyJson(
@Nullable HttpServletRequest req,
@@ -1970,7 +1969,6 @@
* set to {@code true} if the reply may contain sensitive data
* @param text the text reply
* @return the length of the response
- * @throws IOException
*/
static long replyText(
@Nullable HttpServletRequest req, HttpServletResponse res, boolean allowTracing, String text)
diff --git a/java/com/google/gerrit/index/FieldDef.java b/java/com/google/gerrit/index/FieldDef.java
index eb64c1d..76aa7cc 100644
--- a/java/com/google/gerrit/index/FieldDef.java
+++ b/java/com/google/gerrit/index/FieldDef.java
@@ -138,17 +138,17 @@
return name;
}
- /** @return name of the field. */
+ /** Returns name of the field. */
public String getName() {
return name;
}
- /** @return type of the field; for repeatable fields, the inner type, not the iterable type. */
+ /** Returns type of the field; for repeatable fields, the inner type, not the iterable type. */
public FieldType<?> getType() {
return type;
}
- /** @return whether the field should be stored in the index. */
+ /** Returns whether the field should be stored in the index. */
public boolean isStored() {
return stored;
}
@@ -203,7 +203,7 @@
return false;
}
- /** @return whether the field is repeatable. */
+ /** Returns whether the field is repeatable. */
public boolean isRepeatable() {
return repeatable;
}
diff --git a/java/com/google/gerrit/index/Index.java b/java/com/google/gerrit/index/Index.java
index 529cd78..ead302d 100644
--- a/java/com/google/gerrit/index/Index.java
+++ b/java/com/google/gerrit/index/Index.java
@@ -33,7 +33,7 @@
* <p>Implementations must be thread-safe and should batch inserts/updates where appropriate.
*/
public interface Index<K, V> {
- /** @return the schema version used by this index. */
+ /** Returns the schema version used by this index. */
Schema<V> getSchema();
/** Close this index. */
diff --git a/java/com/google/gerrit/index/IndexConfig.java b/java/com/google/gerrit/index/IndexConfig.java
index 29b8ea6..8676fb2 100644
--- a/java/com/google/gerrit/index/IndexConfig.java
+++ b/java/com/google/gerrit/index/IndexConfig.java
@@ -101,27 +101,27 @@
}
/**
- * @return maximum limit supported by the underlying index, or limited for performance reasons.
+ * Returns maximum limit supported by the underlying index, or limited for performance reasons.
*/
public abstract int maxLimit();
/**
- * @return maximum number of pages (limit / start) supported by the underlying index, or limited
- * for performance reasons.
+ * Returns maximum number of pages (limit / start) supported by the underlying index, or limited
+ * for performance reasons.
*/
public abstract int maxPages();
/**
- * @return maximum number of total index query terms supported by the underlying index, or limited
- * for performance reasons.
+ * Returns maximum number of total index query terms supported by the underlying index, or limited
+ * for performance reasons.
*/
public abstract int maxTerms();
- /** @return index type. */
+ /** Returns index type. */
public abstract String type();
/**
- * @return whether different subsets of changes may be stored in different physical sub-indexes.
+ * Returns whether different subsets of changes may be stored in different physical sub-indexes.
*/
public abstract boolean separateChangeSubIndexes();
}
diff --git a/java/com/google/gerrit/index/Schema.java b/java/com/google/gerrit/index/Schema.java
index 3aa9de0..91c3f70 100644
--- a/java/com/google/gerrit/index/Schema.java
+++ b/java/com/google/gerrit/index/Schema.java
@@ -134,7 +134,7 @@
return fields;
}
- /** @return all fields in this schema where {@link FieldDef#isStored()} is true. */
+ /** Returns all fields in this schema where {@link FieldDef#isStored()} is true. */
public final ImmutableMap<String, FieldDef<T, ?>> getStoredFields() {
return storedFields;
}
diff --git a/java/com/google/gerrit/index/query/DataSource.java b/java/com/google/gerrit/index/query/DataSource.java
index 2c2ba53..518d153 100644
--- a/java/com/google/gerrit/index/query/DataSource.java
+++ b/java/com/google/gerrit/index/query/DataSource.java
@@ -15,12 +15,12 @@
package com.google.gerrit.index.query;
public interface DataSource<T> {
- /** @return an estimate of the number of results from {@link #read()}. */
+ /** Returns an estimate of the number of results from {@link #read()}. */
int getCardinality();
- /** @return read from the database and return the results. */
+ /** Returns read from the database and return the results. */
ResultSet<T> read();
- /** @return read from the database and return the raw results. */
+ /** Returns read from the database and return the raw results. */
ResultSet<FieldBundle> readRaw();
}
diff --git a/java/com/google/gerrit/index/query/Matchable.java b/java/com/google/gerrit/index/query/Matchable.java
index 7a16ae8..f416149 100644
--- a/java/com/google/gerrit/index/query/Matchable.java
+++ b/java/com/google/gerrit/index/query/Matchable.java
@@ -18,6 +18,6 @@
/** Does this predicate match this object? */
boolean match(T object);
- /** @return a cost estimate to run this predicate, higher figures cost more. */
+ /** Returns a cost estimate to run this predicate, higher figures cost more. */
int getCost();
}
diff --git a/java/com/google/gerrit/index/query/Predicate.java b/java/com/google/gerrit/index/query/Predicate.java
index 2382d30..2791f2c 100644
--- a/java/com/google/gerrit/index/query/Predicate.java
+++ b/java/com/google/gerrit/index/query/Predicate.java
@@ -159,7 +159,7 @@
return (Matchable<T>) this;
}
- /** @return a cost estimate to run this predicate, higher figures cost more. */
+ /** Returns a cost estimate to run this predicate, higher figures cost more. */
public int estimateCost() {
if (!isMatchable()) {
return 1;
diff --git a/java/com/google/gerrit/index/query/QueryResult.java b/java/com/google/gerrit/index/query/QueryResult.java
index 33fcef0..d03a68b 100644
--- a/java/com/google/gerrit/index/query/QueryResult.java
+++ b/java/com/google/gerrit/index/query/QueryResult.java
@@ -34,19 +34,19 @@
return new AutoValue_QueryResult<>(query, predicate, ImmutableList.copyOf(entities), more);
}
- /** @return the original query string, or null if the query was created programmatically. */
+ /** Returns the original query string, or null if the query was created programmatically. */
@Nullable
public abstract String query();
- /** @return the predicate after all rewriting and other modification by the query subsystem. */
+ /** Returns the predicate after all rewriting and other modification by the query subsystem. */
public abstract Predicate<T> predicate();
- /** @return the query results. */
+ /** Returns the query results. */
public abstract ImmutableList<T> entities();
/**
- * @return whether the query could be retried with a higher start/limit to produce more results.
- * Never true if {@link #entities()} is empty.
+ * Returns whether the query could be retried with a higher start/limit to produce more results.
+ * Never true if {@link #entities()} is empty.
*/
public abstract boolean more();
}
diff --git a/java/com/google/gerrit/json/OutputFormat.java b/java/com/google/gerrit/json/OutputFormat.java
index 3e7c319..c5504bb 100644
--- a/java/com/google/gerrit/json/OutputFormat.java
+++ b/java/com/google/gerrit/json/OutputFormat.java
@@ -42,12 +42,12 @@
*/
JSON_COMPACT;
- /** @return true when the format is either JSON or JSON_COMPACT. */
+ /** Returns true when the format is either JSON or JSON_COMPACT. */
public boolean isJson() {
return this == JSON_COMPACT || this == JSON;
}
- /** @return a new Gson instance configured according to the format. */
+ /** Returns a new Gson instance configured according to the format. */
public GsonBuilder newGsonBuilder() {
if (!isJson()) {
throw new IllegalStateException(String.format("%s is not JSON", this));
@@ -63,7 +63,7 @@
return gb;
}
- /** @return a new Gson instance configured according to the format. */
+ /** Returns a new Gson instance configured according to the format. */
public Gson newGson() {
return newGsonBuilder().create();
}
diff --git a/java/com/google/gerrit/lifecycle/LifecycleModule.java b/java/com/google/gerrit/lifecycle/LifecycleModule.java
index 0fb4653..efe1518 100644
--- a/java/com/google/gerrit/lifecycle/LifecycleModule.java
+++ b/java/com/google/gerrit/lifecycle/LifecycleModule.java
@@ -24,13 +24,16 @@
/** Module to support registering a unique LifecyleListener. */
public abstract class LifecycleModule extends FactoryModule {
/**
- * @return a unique listener binding.
- * <p>To create a listener binding use:
- * <pre>
+ * Returns a unique listener binding.
+ *
+ * <p>To create a listener binding use:
+ *
+ * <pre>
* listener().to(MyListener.class);
* </pre>
- * where {@code MyListener} is a {@link Singleton} implementing the {@link LifecycleListener}
- * interface.
+ *
+ * where {@code MyListener} is a {@link Singleton} implementing the {@link LifecycleListener}
+ * interface.
*/
protected LinkedBindingBuilder<LifecycleListener> listener() {
final Annotation id = UniqueAnnotations.create();
diff --git a/java/com/google/gerrit/mail/TextParser.java b/java/com/google/gerrit/mail/TextParser.java
index 95ab10c..c43d200 100644
--- a/java/com/google/gerrit/mail/TextParser.java
+++ b/java/com/google/gerrit/mail/TextParser.java
@@ -30,7 +30,7 @@
/**
* Parses comments from plaintext email.
*
- * @param email @param email the message as received from the email service
+ * @param email the message as received from the email service
* @param comments list of {@link HumanComment}s previously persisted on the change that caused
* the original notification email to be sent out. Ordering must be the same as in the
* outbound email
diff --git a/java/com/google/gerrit/metrics/Description.java b/java/com/google/gerrit/metrics/Description.java
index 10568bc..f5963af 100644
--- a/java/com/google/gerrit/metrics/Description.java
+++ b/java/com/google/gerrit/metrics/Description.java
@@ -133,27 +133,27 @@
return this;
}
- /** @return true if the metric value never changes after startup. */
+ /** Returns true if the metric value never changes after startup. */
public boolean isConstant() {
return TRUE_VALUE.equals(annotations.get(CONSTANT));
}
- /** @return true if the metric may be interpreted as a rate over time. */
+ /** Returns true if the metric may be interpreted as a rate over time. */
public boolean isRate() {
return TRUE_VALUE.equals(annotations.get(RATE));
}
- /** @return true if the metric is an instantaneous sample. */
+ /** Returns true if the metric is an instantaneous sample. */
public boolean isGauge() {
return TRUE_VALUE.equals(annotations.get(GAUGE));
}
- /** @return true if the metric accumulates over the lifespan of the process. */
+ /** Returns true if the metric accumulates over the lifespan of the process. */
public boolean isCumulative() {
return TRUE_VALUE.equals(annotations.get(CUMULATIVE));
}
- /** @return the suggested field ordering. */
+ /** Returns the suggested field ordering. */
public FieldOrdering getFieldOrdering() {
String o = annotations.get(FIELD_ORDERING);
return o != null ? FieldOrdering.valueOf(o) : FieldOrdering.AT_END;
@@ -187,7 +187,7 @@
return u;
}
- /** @return immutable copy of all annotations (configurable properties). */
+ /** Returns an immutable copy of all annotations (configurable properties). */
public ImmutableMap<String, String> getAnnotations() {
return ImmutableMap.copyOf(annotations);
}
diff --git a/java/com/google/gerrit/metrics/Field.java b/java/com/google/gerrit/metrics/Field.java
index bdae854..5508819 100644
--- a/java/com/google/gerrit/metrics/Field.java
+++ b/java/com/google/gerrit/metrics/Field.java
@@ -102,19 +102,19 @@
.metadataMapper(metadataMapper);
}
- /** @return name of this field within the metric. */
+ /** Returns name of this field within the metric. */
public abstract String name();
- /** @return type of value used within the field. */
+ /** Returns type of value used within the field. */
public abstract Class<T> valueType();
- /** @return mapper that maps a field value to a field in the {@link Metadata} class. */
+ /** Returns mapper that maps a field value to a field in the {@link Metadata} class. */
public abstract BiConsumer<Metadata.Builder, T> metadataMapper();
- /** @return description text for the field explaining its range of values. */
+ /** Returns description text for the field explaining its range of values. */
public abstract Optional<String> description();
- /** @return formatter to format field values. */
+ /** Returns formatter to format field values. */
public abstract Function<T, String> formatter();
@AutoValue.Builder
diff --git a/java/com/google/gerrit/metrics/TimerContext.java b/java/com/google/gerrit/metrics/TimerContext.java
index 62eb030..a3754c5 100644
--- a/java/com/google/gerrit/metrics/TimerContext.java
+++ b/java/com/google/gerrit/metrics/TimerContext.java
@@ -29,7 +29,7 @@
*/
public abstract void record(long elapsed);
- /** @return the start time in system time nanoseconds. */
+ /** Returns the start time in system time nanoseconds. */
public long getStartTime() {
return startNanos;
}
diff --git a/java/com/google/gerrit/pgm/Daemon.java b/java/com/google/gerrit/pgm/Daemon.java
index a3605f7..0a9b4d8 100644
--- a/java/com/google/gerrit/pgm/Daemon.java
+++ b/java/com/google/gerrit/pgm/Daemon.java
@@ -181,7 +181,7 @@
private String devCdn = "";
@Option(name = "--dev-cdn", usage = "Use specified cdn for serving static content.")
- private void setDevCdn(String cdn) {
+ void setDevCdn(String cdn) {
if (cdn == null) {
cdn = "";
}
diff --git a/java/com/google/gerrit/pgm/init/BaseInit.java b/java/com/google/gerrit/pgm/init/BaseInit.java
index c4b0040..c083296 100644
--- a/java/com/google/gerrit/pgm/init/BaseInit.java
+++ b/java/com/google/gerrit/pgm/init/BaseInit.java
@@ -164,7 +164,6 @@
* Invoked before site init is called.
*
* @param init initializer instance.
- * @throws Exception
*/
protected boolean beforeInit(SiteInit init) throws Exception {
return false;
@@ -174,7 +173,6 @@
* Invoked after site init is called.
*
* @param run completed run instance.
- * @throws Exception
*/
protected void afterInit(SiteRun run) throws Exception {}
diff --git a/java/com/google/gerrit/pgm/init/InitJGitConfig.java b/java/com/google/gerrit/pgm/init/InitJGitConfig.java
index bad55b4..b68e9f7 100644
--- a/java/com/google/gerrit/pgm/init/InitJGitConfig.java
+++ b/java/com/google/gerrit/pgm/init/InitJGitConfig.java
@@ -53,7 +53,8 @@
ConfigConstants.CONFIG_RECEIVE_SECTION, null, ConfigConstants.CONFIG_KEY_AUTOGC, false);
jgitConfig.save();
ui.error(
- "Auto-configured \"receive.autogc = false\" to disable auto-gc after git-receive-pack.");
+ "Auto-configured \"receive.autogc = false\" to disable auto-gc after"
+ + " git-receive-pack.");
} else if (jgitConfig.getBoolean(
ConfigConstants.CONFIG_RECEIVE_SECTION, ConfigConstants.CONFIG_KEY_AUTOGC, true)) {
ui.error(
@@ -72,12 +73,9 @@
ConfigConstants.CONFIG_PROTOCOL_SECTION, null, ConfigConstants.CONFIG_KEY_VERSION);
if (!TransferConfig.ProtocolVersion.V2.version().equals(version)) {
ui.error(
- String.format(
- "HINT: JGit option \"%s.%s = %s\". It's recommended to activate git\n"
- + "wire protocol version 2 to improve git fetch performance.",
- ConfigConstants.CONFIG_PROTOCOL_SECTION,
- ConfigConstants.CONFIG_KEY_VERSION,
- version));
+ "HINT: JGit option \"%s.%s = %s\". It's recommended to activate git\n"
+ + "wire protocol version 2 to improve git fetch performance.",
+ ConfigConstants.CONFIG_PROTOCOL_SECTION, ConfigConstants.CONFIG_KEY_VERSION, version);
}
}
} catch (IOException e) {
diff --git a/java/com/google/gerrit/pgm/init/PluginsDistribution.java b/java/com/google/gerrit/pgm/init/PluginsDistribution.java
index 73720c4..65c96ec 100644
--- a/java/com/google/gerrit/pgm/init/PluginsDistribution.java
+++ b/java/com/google/gerrit/pgm/init/PluginsDistribution.java
@@ -24,6 +24,8 @@
public interface Processor {
/**
+ * Processes the plugin
+ *
* @param pluginName the name of the plugin (without the .jar extension)
* @param in the content of the plugin .jar file. Implementors don't have to close this stream.
* @throws IOException implementations will typically propagate any IOException caused by
diff --git a/java/com/google/gerrit/pgm/init/api/BUILD b/java/com/google/gerrit/pgm/init/api/BUILD
index 693d319..733b9e3 100644
--- a/java/com/google/gerrit/pgm/init/api/BUILD
+++ b/java/com/google/gerrit/pgm/init/api/BUILD
@@ -11,6 +11,7 @@
"//java/com/google/gerrit/server",
"//lib:guava",
"//lib:jgit",
+ "//lib/errorprone:annotations",
"//lib/flogger:api",
"//lib/guice",
"//lib/guice:guice-assistedinject",
diff --git a/java/com/google/gerrit/pgm/init/api/ConsoleUI.java b/java/com/google/gerrit/pgm/init/api/ConsoleUI.java
index ea39a44..dffdde7 100644
--- a/java/com/google/gerrit/pgm/init/api/ConsoleUI.java
+++ b/java/com/google/gerrit/pgm/init/api/ConsoleUI.java
@@ -14,6 +14,8 @@
package com.google.gerrit.pgm.init.api;
+import com.google.errorprone.annotations.FormatMethod;
+import com.google.errorprone.annotations.FormatString;
import com.google.gerrit.common.Die;
import java.io.Console;
import java.util.EnumSet;
@@ -37,7 +39,7 @@
return new Die("aborted by user");
}
- /** @return true if this is a batch UI that has no user interaction. */
+ /** Returns true if this is a batch UI that has no user interaction. */
public abstract boolean isBatch();
/** Display a header message before a series of prompts. */
@@ -75,6 +77,7 @@
public abstract String password(String fmt, Object... args);
/** Display an error message on the system stderr. */
+ @FormatMethod
public void error(String format, Object... args) {
System.err.println(String.format(format, args));
System.err.flush();
@@ -97,6 +100,7 @@
}
@Override
+ @FormatMethod
public boolean yesno(Boolean def, String fmt, Object... args) {
final String prompt = String.format(fmt, args);
for (; ; ) {
@@ -135,7 +139,8 @@
}
@Override
- public String readString(String def, String fmt, Object... args) {
+ @FormatMethod
+ public String readString(String def, @FormatString String fmt, Object... args) {
final String prompt = String.format(fmt, args);
String r;
if (def != null) {
@@ -154,7 +159,9 @@
}
@Override
- public String readString(String def, Set<String> allowedValues, String fmt, Object... args) {
+ @FormatMethod
+ public String readString(
+ String def, Set<String> allowedValues, @FormatString String fmt, Object... args) {
for (; ; ) {
String r = readString(def, fmt, args);
if (allowedValues.contains(r.toLowerCase())) {
@@ -171,6 +178,7 @@
}
@Override
+ @FormatMethod
public String password(String fmt, Object... args) {
final String prompt = String.format(fmt, args);
for (; ; ) {
@@ -195,6 +203,7 @@
}
@Override
+ @FormatMethod
public <T extends Enum<?>, A extends EnumSet<? extends T>> T readEnum(
T def, A options, String fmt, Object... args) {
final String prompt = String.format(fmt, args);
diff --git a/java/com/google/gerrit/pgm/util/SiteProgram.java b/java/com/google/gerrit/pgm/util/SiteProgram.java
index c3be0a4..c1ba896 100644
--- a/java/com/google/gerrit/pgm/util/SiteProgram.java
+++ b/java/com/google/gerrit/pgm/util/SiteProgram.java
@@ -52,7 +52,7 @@
name = "--site-path",
aliases = {"-d"},
usage = "Local directory containing site data")
- private void setSitePath(String path) {
+ void setSitePath(String path) {
sitePath = Paths.get(path).normalize();
}
@@ -64,7 +64,7 @@
this.sitePath = sitePath.normalize();
}
- /** @return the site path specified on the command line. */
+ /** Returns the site path specified on the command line. */
protected Path getSitePath() {
return sitePath;
}
@@ -76,12 +76,12 @@
}
}
- /** @return provides database connectivity and site path. */
+ /** Provides database connectivity and site path. */
protected Injector createDbInjector() {
return createDbInjector(false);
}
- /** @return provides database connectivity and site path. */
+ /** Provides database connectivity and site path. */
protected Injector createDbInjector(boolean enableMetrics) {
List<Module> modules = new ArrayList<>();
diff --git a/java/com/google/gerrit/server/ChangeMessagesUtil.java b/java/com/google/gerrit/server/ChangeMessagesUtil.java
index d8b5d87..8366b09 100644
--- a/java/com/google/gerrit/server/ChangeMessagesUtil.java
+++ b/java/com/google/gerrit/server/ChangeMessagesUtil.java
@@ -127,8 +127,9 @@
}
/**
+ * Determines whether the tag starts with the autogenerated prefix
+ *
* @param tag value of a tag, or null.
- * @return whether the tag starts with the autogenerated prefix.
*/
public static boolean isAutogenerated(@Nullable String tag) {
return tag != null && tag.startsWith(AUTOGENERATED_TAG_PREFIX);
diff --git a/java/com/google/gerrit/server/ChangeUtil.java b/java/com/google/gerrit/server/ChangeUtil.java
index 46e8d33..d9edf42 100644
--- a/java/com/google/gerrit/server/ChangeUtil.java
+++ b/java/com/google/gerrit/server/ChangeUtil.java
@@ -53,7 +53,7 @@
public static final Ordering<PatchSet> PS_ID_ORDER =
Ordering.from(comparingInt(PatchSet::number));
- /** @return a new unique identifier for change message entities. */
+ /** Returns a new unique identifier for change message entities. */
public static String messageUuid() {
byte[] buf = new byte[8];
UUID_RANDOM.nextBytes(buf);
diff --git a/java/com/google/gerrit/server/CurrentUser.java b/java/com/google/gerrit/server/CurrentUser.java
index 7012944..0b5600d 100644
--- a/java/com/google/gerrit/server/CurrentUser.java
+++ b/java/com/google/gerrit/server/CurrentUser.java
@@ -103,7 +103,7 @@
return Optional.empty();
}
- /** @return unique name of the user for logging, never {@code null} */
+ /** Returns unique name of the user for logging, never {@code null} */
public String getLoggableName() {
return getUserName().orElseGet(() -> getClass().getSimpleName());
}
diff --git a/java/com/google/gerrit/server/IdentifiedUser.java b/java/com/google/gerrit/server/IdentifiedUser.java
index 24ea9d2..eb3e324 100644
--- a/java/com/google/gerrit/server/IdentifiedUser.java
+++ b/java/com/google/gerrit/server/IdentifiedUser.java
@@ -343,15 +343,15 @@
}
/**
- * @return the user's user name; null if one has not been selected/assigned or if the user name is
- * empty.
+ * Returns the user's user name; null if one has not been selected/assigned or if the user name is
+ * empty.
*/
@Override
public Optional<String> getUserName() {
return state().userName();
}
- /** @return unique name of the user for logging, never {@code null} */
+ /** Returns unique name of the user for logging, never {@code null} */
@Override
public String getLoggableName() {
return getUserName()
diff --git a/java/com/google/gerrit/server/WebLinks.java b/java/com/google/gerrit/server/WebLinks.java
index 53a7661..3c69573 100644
--- a/java/com/google/gerrit/server/WebLinks.java
+++ b/java/com/google/gerrit/server/WebLinks.java
@@ -92,11 +92,12 @@
}
/**
+ * Returns links for patch sets
+ *
* @param project Project name.
* @param commit SHA1 of commit.
* @param commitMessage the commit message of the commit.
* @param branchName branch of the commit.
- * @return Links for patch sets.
*/
public ImmutableList<WebLinkInfo> getPatchSetLinks(
Project.NameKey project, String commit, String commitMessage, String branchName) {
@@ -106,11 +107,12 @@
}
/**
+ * Returns links for resolving conflicts
+ *
* @param project Project name.
* @param commit SHA1 of commit.
* @param commitMessage the commit message of the commit.
* @param branchName branch of the commit.
- * @return Links for resolving comflicts.
*/
public ImmutableList<WebLinkInfo> getResolveConflictsLinks(
Project.NameKey project, String commit, String commitMessage, String branchName) {
@@ -121,11 +123,12 @@
}
/**
+ * Returns links for patch sets
+ *
* @param project Project name.
* @param revision SHA1 of the parent revision.
* @param commitMessage the commit message of the parent revision.
* @param branchName branch of the revision (and parent revision).
- * @return Links for patch sets.
*/
public ImmutableList<WebLinkInfo> getParentLinks(
Project.NameKey project, String revision, String commitMessage, String branchName) {
@@ -135,10 +138,11 @@
}
/**
+ * Returns links for editing
+ *
* @param project Project name.
* @param revision SHA1 of revision.
* @param file File name.
- * @return Links for editing.
*/
public ImmutableList<WebLinkInfo> getEditLinks(String project, String revision, String file) {
return Patch.isMagic(file)
@@ -147,10 +151,11 @@
}
/**
+ * Returns links for files
+ *
* @param project Project name.
* @param revision SHA1 of revision.
* @param file File name.
- * @return Links for files.
*/
public ImmutableList<WebLinkInfo> getFileLinks(String project, String revision, String file) {
return Patch.isMagic(file)
@@ -159,10 +164,11 @@
}
/**
+ * Returns links for file history
+ *
* @param project Project name.
* @param revision SHA1 of revision.
* @param file File name.
- * @return Links for file history
*/
public ImmutableList<WebLinkInfo> getFileHistoryLinks(
String project, String revision, String file) {
@@ -176,6 +182,8 @@
}
/**
+ * Returns links for file diffs
+ *
* @param project Project name.
* @param patchSetIdA Patch set ID of side A, <code>null</code> if no base patch set was selected.
* @param revisionA SHA1 of revision of side A.
@@ -183,7 +191,6 @@
* @param patchSetIdB Patch set ID of side B.
* @param revisionB SHA1 of revision of side B.
* @param fileB File name of side B.
- * @return Links for file diffs.
*/
public ImmutableList<DiffWebLinkInfo> getDiffLinks(
String project,
@@ -214,26 +221,29 @@
}
/**
+ * Returns links for projects
+ *
* @param project Project name.
- * @return Links for projects.
*/
public ImmutableList<WebLinkInfo> getProjectLinks(String project) {
return filterLinks(projectLinks, webLink -> webLink.getProjectWeblink(project));
}
/**
+ * Returns links for branches
+ *
* @param project Project name
* @param branch Branch name
- * @return Links for branches.
*/
public ImmutableList<WebLinkInfo> getBranchLinks(String project, String branch) {
return filterLinks(branchLinks, webLink -> webLink.getBranchWebLink(project, branch));
}
/**
+ * Returns links for the tag
+ *
* @param project Project name
* @param tag Tag name
- * @return Links for tags.
*/
public ImmutableList<WebLinkInfo> getTagLinks(String project, String tag) {
return filterLinks(tagLinks, webLink -> webLink.getTagWebLink(project, tag));
diff --git a/java/com/google/gerrit/server/account/AccountLimits.java b/java/com/google/gerrit/server/account/AccountLimits.java
index 1845f5b..5549d28 100644
--- a/java/com/google/gerrit/server/account/AccountLimits.java
+++ b/java/com/google/gerrit/server/account/AccountLimits.java
@@ -51,7 +51,7 @@
user = currentUser;
}
- /** @return which priority queue the user's tasks should be submitted to. */
+ /** Returns which priority queue the user's tasks should be submitted to. */
public QueueProvider.QueueType getQueueType() {
// If a non-generic group (that is not Anonymous Users or Registered Users)
// grants us INTERACTIVE permission, use the INTERACTIVE queue even if
@@ -99,7 +99,7 @@
return getRange(GlobalCapability.QUERY_LIMIT).getMax();
}
- /** @return true if the user has a permission rule specifying the range. */
+ /** Returns true if the user has a permission rule specifying the range. */
public boolean hasExplicitRange(String permission) {
return GlobalCapability.hasRange(permission) && !getRules(permission).isEmpty();
}
diff --git a/java/com/google/gerrit/server/account/AccountManager.java b/java/com/google/gerrit/server/account/AccountManager.java
index 987e7e3..407d2f7 100644
--- a/java/com/google/gerrit/server/account/AccountManager.java
+++ b/java/com/google/gerrit/server/account/AccountManager.java
@@ -118,7 +118,7 @@
this.externalIdKeyFactory = externalIdKeyFactory;
}
- /** @return user identified by this external identity string */
+ /** Returns a user identified by this external identity string */
public Optional<Account.Id> lookup(String externalId) throws AccountException {
try {
return externalIds.get(externalIdKeyFactory.parse(externalId)).map(ExternalId::accountId);
diff --git a/java/com/google/gerrit/server/account/GroupBackend.java b/java/com/google/gerrit/server/account/GroupBackend.java
index d6360c5..91edaf2 100644
--- a/java/com/google/gerrit/server/account/GroupBackend.java
+++ b/java/com/google/gerrit/server/account/GroupBackend.java
@@ -26,7 +26,7 @@
/** Implementations of GroupBackend provide lookup and membership accessors to a group system. */
@ExtensionPoint
public interface GroupBackend {
- /** @return {@code true} if the backend can operate on the UUID. */
+ /** Returns {@code true} if the backend can operate on the UUID. */
boolean handles(AccountGroup.UUID uuid);
/**
@@ -38,12 +38,12 @@
@Nullable
GroupDescription.Basic get(AccountGroup.UUID uuid);
- /** @return suggestions for the group name sorted by name. */
+ /** Returns suggestions for the group name sorted by name. */
Collection<GroupReference> suggest(String name, @Nullable ProjectState project);
- /** @return the group membership checker for the backend. */
+ /** Returns the group membership checker for the backend. */
GroupMembership membershipsOf(CurrentUser user);
- /** @return {@code true} if the group with the given UUID is visible to all registered users. */
+ /** Returns {@code true} if the group with the given UUID is visible to all registered users. */
boolean isVisibleToAll(AccountGroup.UUID uuid);
}
diff --git a/java/com/google/gerrit/server/account/GroupCache.java b/java/com/google/gerrit/server/account/GroupCache.java
index d8cac71..1e28d7d 100644
--- a/java/com/google/gerrit/server/account/GroupCache.java
+++ b/java/com/google/gerrit/server/account/GroupCache.java
@@ -103,6 +103,10 @@
*/
void evict(AccountGroup.UUID groupUuid);
- /** @see #evict(AccountGroup.UUID) */
+ /**
+ * Removes the association of the given UUIDs with groups
+ *
+ * <p>See {@link #evict(AccountGroup.UUID)}
+ */
void evict(Collection<AccountGroup.UUID> groupUuid);
}
diff --git a/java/com/google/gerrit/server/account/GroupIncludeCache.java b/java/com/google/gerrit/server/account/GroupIncludeCache.java
index 6547619..d92d9fc 100644
--- a/java/com/google/gerrit/server/account/GroupIncludeCache.java
+++ b/java/com/google/gerrit/server/account/GroupIncludeCache.java
@@ -37,7 +37,7 @@
*/
Collection<AccountGroup.UUID> parentGroupsOf(AccountGroup.UUID groupId);
- /** @return set of any UUIDs that are not internal groups. */
+ /** Returns set of any UUIDs that are not internal groups. */
Collection<AccountGroup.UUID> allExternalMembers();
void evictGroupsWithMember(Account.Id memberId);
diff --git a/java/com/google/gerrit/server/account/Realm.java b/java/com/google/gerrit/server/account/Realm.java
index d56ed07..3f642f7 100644
--- a/java/com/google/gerrit/server/account/Realm.java
+++ b/java/com/google/gerrit/server/account/Realm.java
@@ -41,10 +41,10 @@
void onCreateAccount(AuthRequest who, Account account);
- /** @return true if the user has the given email address. */
+ /** Returns true if the user has the given email address. */
boolean hasEmailAddress(IdentifiedUser who, String email);
- /** @return all known email addresses for the identified user. */
+ /** Returns all known email addresses for the identified user. */
Set<String> getEmailAddresses(IdentifiedUser who);
/**
@@ -56,19 +56,13 @@
*/
Account.Id lookup(String accountName) throws IOException;
- /**
- * @return true if the account is active.
- * @throws NamingException
- * @throws LoginException
- * @throws AccountException
- * @throws IOException
- */
+ /** Returns true if the account is active. */
default boolean isActive(@SuppressWarnings("unused") String username)
throws LoginException, NamingException, AccountException, IOException {
return true;
}
- /** @return true if the account is backed by the realm, false otherwise. */
+ /** Returns true if the account is backed by the realm, false otherwise. */
default boolean accountBelongsToRealm(
@SuppressWarnings("unused") Collection<ExternalId> externalIds) {
return false;
diff --git a/java/com/google/gerrit/server/account/VersionedAuthorizedKeys.java b/java/com/google/gerrit/server/account/VersionedAuthorizedKeys.java
index 30021e6..555a2c1 100644
--- a/java/com/google/gerrit/server/account/VersionedAuthorizedKeys.java
+++ b/java/com/google/gerrit/server/account/VersionedAuthorizedKeys.java
@@ -206,7 +206,6 @@
*
* @param pub the public SSH key to be added
* @return the new SSH key
- * @throws InvalidSshKeyException
*/
private AccountSshKey addKey(String pub) throws InvalidSshKeyException {
checkLoaded();
diff --git a/java/com/google/gerrit/server/approval/ApprovalCacheImpl.java b/java/com/google/gerrit/server/approval/ApprovalCacheImpl.java
index a01931c..fd31da9 100644
--- a/java/com/google/gerrit/server/approval/ApprovalCacheImpl.java
+++ b/java/com/google/gerrit/server/approval/ApprovalCacheImpl.java
@@ -36,7 +36,7 @@
import com.google.protobuf.ByteString;
import java.util.concurrent.ExecutionException;
-/** @see ApprovalCache */
+/** Implementation of the {@link ApprovalCache} interface */
public class ApprovalCacheImpl implements ApprovalCache {
private static final String CACHE_NAME = "approvals";
diff --git a/java/com/google/gerrit/server/approval/ApprovalsUtil.java b/java/com/google/gerrit/server/approval/ApprovalsUtil.java
index af045a9..c2e35d2 100644
--- a/java/com/google/gerrit/server/approval/ApprovalsUtil.java
+++ b/java/com/google/gerrit/server/approval/ApprovalsUtil.java
@@ -278,7 +278,6 @@
* @param ps patch set being approved.
* @param user user adding approvals.
* @param approvals approvals to add.
- * @throws RestApiException
*/
public Iterable<PatchSetApproval> addApprovalsForNewPatchSet(
ChangeUpdate update,
diff --git a/java/com/google/gerrit/server/auth/AuthBackend.java b/java/com/google/gerrit/server/auth/AuthBackend.java
index 9ec3366..424ee43 100644
--- a/java/com/google/gerrit/server/auth/AuthBackend.java
+++ b/java/com/google/gerrit/server/auth/AuthBackend.java
@@ -20,7 +20,7 @@
@ExtensionPoint
public interface AuthBackend {
- /** @return an identifier that uniquely describes the backend. */
+ /** Returns an identifier that uniquely describes the backend. */
String getDomain();
/**
diff --git a/java/com/google/gerrit/server/auth/AuthUser.java b/java/com/google/gerrit/server/auth/AuthUser.java
index 987f086..9e1c5ec 100644
--- a/java/com/google/gerrit/server/auth/AuthUser.java
+++ b/java/com/google/gerrit/server/auth/AuthUser.java
@@ -52,18 +52,18 @@
this.username = username;
}
- /** @return the globally unique identifier. */
+ /** Returns the globally unique identifier. */
public final UUID getUUID() {
return uuid;
}
- /** @return the backend specific user name, or null if one does not exist. */
+ /** Returns the backend specific user name, or null if one does not exist. */
@Nullable
public final String getUsername() {
return username;
}
- /** @return {@code true} if {@link #getUsername()} is not null. */
+ /** Returns {@code true} if {@link #getUsername()} is not null. */
public final boolean hasUsername() {
return getUsername() != null;
}
diff --git a/java/com/google/gerrit/server/cache/ForwardingRemovalListener.java b/java/com/google/gerrit/server/cache/ForwardingRemovalListener.java
index ee672cd..28d57e6 100644
--- a/java/com/google/gerrit/server/cache/ForwardingRemovalListener.java
+++ b/java/com/google/gerrit/server/cache/ForwardingRemovalListener.java
@@ -25,9 +25,6 @@
/**
* This listener dispatches removal events to all other RemovalListeners attached via the DynamicSet
* API.
- *
- * @param <K>
- * @param <V>
*/
@SuppressWarnings("rawtypes")
public class ForwardingRemovalListener<K, V> implements RemovalListener<K, V> {
diff --git a/java/com/google/gerrit/server/change/ChangeResource.java b/java/com/google/gerrit/server/change/ChangeResource.java
index 0d0df0d..970f1b5 100644
--- a/java/com/google/gerrit/server/change/ChangeResource.java
+++ b/java/com/google/gerrit/server/change/ChangeResource.java
@@ -140,7 +140,7 @@
return changeData.getId();
}
- /** @return true if {@link #getUser()} is the change's owner. */
+ /** Returns true if {@link #getUser()} is the change's owner. */
public boolean isUserOwner() {
Account.Id owner = getChange().getOwner();
return user.isIdentifiedUser() && user.asIdentifiedUser().getAccountId().equals(owner);
diff --git a/java/com/google/gerrit/server/change/EmailReviewComments.java b/java/com/google/gerrit/server/change/EmailReviewComments.java
index d433c4e..3c7ea44 100644
--- a/java/com/google/gerrit/server/change/EmailReviewComments.java
+++ b/java/com/google/gerrit/server/change/EmailReviewComments.java
@@ -45,6 +45,8 @@
// TODO(dborowitz/wyatta): Rationalize these arguments so HTML and text templates are operating
// on the same set of inputs.
/**
+ * Creates handle for sending email
+ *
* @param notify setting for handling notification.
* @param notes change notes.
* @param patchSet patch set corresponding to the top-level op
@@ -57,7 +59,6 @@
* contents should *not* include a "Patch set N" header or "(M comments)" footer, as these
* will be added automatically in soy in a structured way.
* @param labels labels applied as part of this review operation.
- * @return handle for sending email.
*/
EmailReviewComments create(
NotifyResolver.Result notify,
diff --git a/java/com/google/gerrit/server/change/FileContentUtil.java b/java/com/google/gerrit/server/change/FileContentUtil.java
index 49c1fe2..c54b902 100644
--- a/java/com/google/gerrit/server/change/FileContentUtil.java
+++ b/java/com/google/gerrit/server/change/FileContentUtil.java
@@ -76,8 +76,6 @@
* @param parent A 1-based parent index to get the content from instead. Null if the content
* should be obtained from {@code revstr} instead.
* @return Content of the file as {@code BinaryResult}.
- * @throws ResourceNotFoundException
- * @throws IOException
*/
public BinaryResult getContent(
ProjectState project, ObjectId revstr, String path, @Nullable Integer parent)
diff --git a/java/com/google/gerrit/server/change/LabelNormalizer.java b/java/com/google/gerrit/server/change/LabelNormalizer.java
index b5527d7..aeb9db0 100644
--- a/java/com/google/gerrit/server/change/LabelNormalizer.java
+++ b/java/com/google/gerrit/server/change/LabelNormalizer.java
@@ -77,10 +77,11 @@
}
/**
+ * Returns copies of approvals normalized to the defined ranges for the label type. Approvals for
+ * unknown labels are not included in the output
+ *
* @param notes change notes containing the given approvals.
* @param approvals list of approvals.
- * @return copies of approvals normalized to the defined ranges for the label type. Approvals for
- * unknown labels are not included in the output.
*/
public Result normalize(ChangeNotes notes, Collection<PatchSetApproval> approvals) {
List<PatchSetApproval> unchanged = Lists.newArrayListWithCapacity(approvals.size());
diff --git a/java/com/google/gerrit/server/change/ReviewerModifier.java b/java/com/google/gerrit/server/change/ReviewerModifier.java
index f3c5193..fffb107 100644
--- a/java/com/google/gerrit/server/change/ReviewerModifier.java
+++ b/java/com/google/gerrit/server/change/ReviewerModifier.java
@@ -201,9 +201,6 @@
* @return handle describing the addition operation. If the {@code op} field is present, this
* operation may be added to a {@code BatchUpdate}. Otherwise, the {@code error} field
* contains information about an error that occurred
- * @throws IOException
- * @throws PermissionBackendException
- * @throws ConfigInvalidException
*/
public ReviewerModification prepare(
ChangeNotes notes, CurrentUser user, ReviewerInput input, boolean allowGroup)
diff --git a/java/com/google/gerrit/server/config/AuthConfig.java b/java/com/google/gerrit/server/config/AuthConfig.java
index 2ac551d..1760378 100644
--- a/java/com/google/gerrit/server/config/AuthConfig.java
+++ b/java/com/google/gerrit/server/config/AuthConfig.java
@@ -229,7 +229,7 @@
return trustContainerAuth;
}
- /** @return true if users with Run As capability can impersonate others. */
+ /** Returns true if users with Run As capability can impersonate others. */
public boolean isRunAsEnabled() {
return enableRunAs;
}
diff --git a/java/com/google/gerrit/server/config/ConfigUpdatedEvent.java b/java/com/google/gerrit/server/config/ConfigUpdatedEvent.java
index b37e489..4032e63 100644
--- a/java/com/google/gerrit/server/config/ConfigUpdatedEvent.java
+++ b/java/com/google/gerrit/server/config/ConfigUpdatedEvent.java
@@ -32,9 +32,9 @@
* <p>1. Help the callers figure out if any action should be taken, depending on which entries are
* updated in gerrit.config.
*
- * <p>2. Provide the callers with a mechanism to accept/reject the entries of interest: @see
- * accept(Set<ConfigKey> entries), @see accept(String section), @see reject(Set<ConfigKey> entries)
- * (+ various overloaded versions of these)
+ * <p>2. Provide the callers with a mechanism to accept/reject the entries of interest: {@link
+ * #accept(Set)}, {@link #accept(String)}, {@link #reject(Set)} (+ various overloaded versions of
+ * these)
*/
public class ConfigUpdatedEvent {
public static final ImmutableMultimap<UpdateResult, ConfigUpdateEntry> NO_UPDATES =
diff --git a/java/com/google/gerrit/server/config/ConfigUtil.java b/java/com/google/gerrit/server/config/ConfigUtil.java
index 27ded63..c44b0fd 100644
--- a/java/com/google/gerrit/server/config/ConfigUtil.java
+++ b/java/com/google/gerrit/server/config/ConfigUtil.java
@@ -282,7 +282,6 @@
* @param sub subsection
* @param s instance of class with config values
* @param defaults instance of class with default values
- * @throws ConfigInvalidException
*/
public static <T> void storeSection(Config cfg, String section, String sub, T s, T defaults)
throws ConfigInvalidException {
@@ -341,7 +340,6 @@
* @param i instance to merge during the load. When present, the boolean fields are not nullified
* when their values are false
* @return loaded instance
- * @throws ConfigInvalidException
*/
public static <T> T loadSection(Config cfg, String section, String sub, T s, T defaults, T i)
throws ConfigInvalidException {
diff --git a/java/com/google/gerrit/server/config/GerritIsReplica.java b/java/com/google/gerrit/server/config/GerritIsReplica.java
index 154fdcd..ab6aa8b 100644
--- a/java/com/google/gerrit/server/config/GerritIsReplica.java
+++ b/java/com/google/gerrit/server/config/GerritIsReplica.java
@@ -19,7 +19,7 @@
import com.google.inject.BindingAnnotation;
import java.lang.annotation.Retention;
-/* Marker on {@link Boolean} indicating whether Gerrit is run as a read-only replica. */
+/** Marker on {@link Boolean} indicating whether Gerrit is run as a read-only replica. */
@Retention(RUNTIME)
@BindingAnnotation
public @interface GerritIsReplica {}
diff --git a/java/com/google/gerrit/server/config/GitwebCgiConfig.java b/java/com/google/gerrit/server/config/GitwebCgiConfig.java
index d7fb83c..1ed0f16 100644
--- a/java/com/google/gerrit/server/config/GitwebCgiConfig.java
+++ b/java/com/google/gerrit/server/config/GitwebCgiConfig.java
@@ -118,22 +118,22 @@
this.logoPng = null;
}
- /** @return local path to the CGI executable; null if we shouldn't execute. */
+ /** Returns local path to the CGI executable; null if we shouldn't execute. */
public Path getGitwebCgi() {
return cgi;
}
- /** @return local path of the {@code gitweb.css} matching the CGI. */
+ /** Returns local path of the {@code gitweb.css} matching the CGI. */
public Path getGitwebCss() {
return css;
}
- /** @return local path of the {@code gitweb.js} for the CGI. */
+ /** Returns local path of the {@code gitweb.js} for the CGI. */
public Path getGitwebJs() {
return js;
}
- /** @return local path of the {@code git-logo.png} for the CGI. */
+ /** Returns local path of the {@code git-logo.png} for the CGI. */
public Path getGitLogoPng() {
return logoPng;
}
diff --git a/java/com/google/gerrit/server/config/GitwebConfig.java b/java/com/google/gerrit/server/config/GitwebConfig.java
index f90a72e..5632978 100644
--- a/java/com/google/gerrit/server/config/GitwebConfig.java
+++ b/java/com/google/gerrit/server/config/GitwebConfig.java
@@ -213,16 +213,16 @@
}
}
- /** @return GitwebType for gitweb viewer. */
+ /** Returns GitwebType for gitweb viewer. */
@Nullable
public GitwebType getGitwebType() {
return type;
}
/**
- * @return URL of the entry point into gitweb. This URL may be relative to our context if gitweb
- * is hosted by ourselves; or absolute if its hosted elsewhere; or null if gitweb has not been
- * configured.
+ * Returns URL of the entry point into gitweb. This URL may be relative to our context if gitweb
+ * is hosted by ourselves; or absolute if its hosted elsewhere; or null if gitweb has not been
+ * configured.
*/
public String getUrl() {
return url;
diff --git a/java/com/google/gerrit/server/config/ProjectConfigEntry.java b/java/com/google/gerrit/server/config/ProjectConfigEntry.java
index fcfa5e9..c09988e3 100644
--- a/java/com/google/gerrit/server/config/ProjectConfigEntry.java
+++ b/java/com/google/gerrit/server/config/ProjectConfigEntry.java
@@ -206,16 +206,18 @@
}
/**
+ * Returns whether the project is editable
+ *
* @param project project state.
- * @return whether the project is editable.
*/
public boolean isEditable(ProjectState project) {
return true;
}
/**
+ * Returns any warning associated with the project
+ *
* @param project project state.
- * @return any warning associated with the project.
*/
public String getWarning(ProjectState project) {
return null;
diff --git a/java/com/google/gerrit/server/edit/ChangeEditUtil.java b/java/com/google/gerrit/server/edit/ChangeEditUtil.java
index 710916e..6b018ce 100644
--- a/java/com/google/gerrit/server/edit/ChangeEditUtil.java
+++ b/java/com/google/gerrit/server/edit/ChangeEditUtil.java
@@ -146,9 +146,6 @@
* @param edit change edit to publish
* @param notify Notify handling that defines to whom email notifications should be sent after the
* change edit is published.
- * @throws IOException
- * @throws UpdateException
- * @throws RestApiException
*/
public void publish(
BatchUpdate.Factory updateFactory,
@@ -209,7 +206,6 @@
* Delete change edit.
*
* @param edit change edit to delete
- * @throws IOException
*/
public void delete(ChangeEdit edit) throws IOException {
Change change = edit.getChange();
diff --git a/java/com/google/gerrit/server/experiments/ExperimentFeaturesConstants.java b/java/com/google/gerrit/server/experiments/ExperimentFeaturesConstants.java
index 5e9ce97..b060d3e 100644
--- a/java/com/google/gerrit/server/experiments/ExperimentFeaturesConstants.java
+++ b/java/com/google/gerrit/server/experiments/ExperimentFeaturesConstants.java
@@ -26,13 +26,6 @@
"GerritBackendRequestFeature__remove_revision_etag";
/**
- * Whether git pushes are cancelled if the client disconnects or the configured receive.timeout is
- * exceeded.
- */
- public static final String GERRIT_BACKEND_REQUEST_FEATURE_ENABLE_PUSH_CANCELLATION =
- "GerritBackendRequestFeature__enable_push_cencallation";
-
- /**
* Allow legacy {@link com.google.gerrit.entities.SubmitRecord}s to be converted and returned as
* submit requirements by the {@link
* com.google.gerrit.server.project.SubmitRequirementsEvaluator}.
diff --git a/java/com/google/gerrit/server/git/GitRepositoryManager.java b/java/com/google/gerrit/server/git/GitRepositoryManager.java
index 8142089a..8dba3e1 100644
--- a/java/com/google/gerrit/server/git/GitRepositoryManager.java
+++ b/java/com/google/gerrit/server/git/GitRepositoryManager.java
@@ -73,7 +73,7 @@
Repository createRepository(Project.NameKey name)
throws RepositoryNotFoundException, RepositoryExistsException, IOException;
- /** @return set of all known projects, sorted by natural NameKey order. */
+ /** Returns set of all known projects, sorted by natural NameKey order. */
SortedSet<Project.NameKey> list();
/**
diff --git a/java/com/google/gerrit/server/git/MergeTip.java b/java/com/google/gerrit/server/git/MergeTip.java
index 204f453..4ffa1a8 100644
--- a/java/com/google/gerrit/server/git/MergeTip.java
+++ b/java/com/google/gerrit/server/git/MergeTip.java
@@ -52,8 +52,8 @@
}
/**
- * @return the initial tip of the branch before the merge operation started; may be null,
- * indicating a previously unborn branch.
+ * Returns the initial tip of the branch before the merge operation started; may be null,
+ * indicating a previously unborn branch.
*/
public CodeReviewCommit getInitialTip() {
return initialTip;
@@ -82,8 +82,8 @@
}
/**
- * @return The current tip of the current merge operation; may be null, indicating an unborn
- * branch.
+ * Returns The current tip of the current merge operation; may be null, indicating an unborn
+ * branch.
*/
@Nullable
public CodeReviewCommit getCurrentTip() {
diff --git a/java/com/google/gerrit/server/git/MergeUtil.java b/java/com/google/gerrit/server/git/MergeUtil.java
index 3385969..3a4d407 100644
--- a/java/com/google/gerrit/server/git/MergeUtil.java
+++ b/java/com/google/gerrit/server/git/MergeUtil.java
@@ -512,9 +512,6 @@
* <li>Change-Id
* </ul>
*
- * @param n
- * @param notes
- * @param psId
* @return new message
*/
private String createDetailedCommitMessage(RevCommit n, ChangeNotes notes, PatchSet.Id psId) {
@@ -630,10 +627,6 @@
* Plugins implementing {@link ChangeMessageModifier} can modify the resulting commit message
* arbitrarily.
*
- * @param n
- * @param mergeTip
- * @param notes
- * @param id
* @return new message
*/
public String createCommitMessageOnSubmit(
diff --git a/java/com/google/gerrit/server/git/MultiProgressMonitor.java b/java/com/google/gerrit/server/git/MultiProgressMonitor.java
index 3faafd1..a4b1033 100644
--- a/java/com/google/gerrit/server/git/MultiProgressMonitor.java
+++ b/java/com/google/gerrit/server/git/MultiProgressMonitor.java
@@ -23,8 +23,6 @@
import com.google.common.util.concurrent.UncheckedExecutionException;
import com.google.gerrit.server.CancellationMetrics;
import com.google.gerrit.server.cancellation.RequestStateProvider;
-import com.google.gerrit.server.experiments.ExperimentFeatures;
-import com.google.gerrit.server.experiments.ExperimentFeaturesConstants;
import com.google.inject.assistedinject.Assisted;
import com.google.inject.assistedinject.AssistedInject;
import java.io.IOException;
@@ -169,7 +167,6 @@
}
private final CancellationMetrics cancellationMetrics;
- private final ExperimentFeatures experimentFeatures;
private final OutputStream out;
private final TaskKind taskKind;
private final String taskName;
@@ -193,11 +190,10 @@
@AssistedInject
private MultiProgressMonitor(
CancellationMetrics cancellationMetrics,
- ExperimentFeatures experimentFeatures,
@Assisted OutputStream out,
@Assisted TaskKind taskKind,
@Assisted String taskName) {
- this(cancellationMetrics, experimentFeatures, out, taskKind, taskName, 500, MILLISECONDS);
+ this(cancellationMetrics, out, taskKind, taskName, 500, MILLISECONDS);
}
/**
@@ -211,14 +207,12 @@
@AssistedInject
private MultiProgressMonitor(
CancellationMetrics cancellationMetrics,
- ExperimentFeatures experimentFeatures,
@Assisted OutputStream out,
@Assisted TaskKind taskKind,
@Assisted String taskName,
@Assisted long maxIntervalTime,
@Assisted TimeUnit maxIntervalUnit) {
this.cancellationMetrics = cancellationMetrics;
- this.experimentFeatures = experimentFeatures;
this.out = out;
this.taskKind = taskKind;
this.taskName = taskName;
@@ -469,12 +463,6 @@
@Override
public void checkIfCancelled(OnCancelled onCancelled) {
- if (taskKind == TaskKind.RECEIVE_COMMITS
- && !experimentFeatures.isFeatureEnabled(
- ExperimentFeaturesConstants.GERRIT_BACKEND_REQUEST_FEATURE_ENABLE_PUSH_CANCELLATION)) {
- return;
- }
-
if (clientDisconnected) {
onCancelled.onCancel(RequestStateProvider.Reason.CLIENT_CLOSED_REQUEST, /* message= */ null);
} else if (deadlineExceeded) {
diff --git a/java/com/google/gerrit/server/git/RepoRefCache.java b/java/com/google/gerrit/server/git/RepoRefCache.java
index 6b2493a..c69f9a6 100644
--- a/java/com/google/gerrit/server/git/RepoRefCache.java
+++ b/java/com/google/gerrit/server/git/RepoRefCache.java
@@ -46,7 +46,7 @@
return id;
}
- /** @return an unmodifiable view of the refs that have been cached by this instance. */
+ /** Returns an unmodifiable view of the refs that have been cached by this instance. */
public Map<String, Optional<ObjectId>> getCachedRefs() {
return Collections.unmodifiableMap(ids);
}
diff --git a/java/com/google/gerrit/server/git/TransferConfig.java b/java/com/google/gerrit/server/git/TransferConfig.java
index 55b9448..728e4ed 100644
--- a/java/com/google/gerrit/server/git/TransferConfig.java
+++ b/java/com/google/gerrit/server/git/TransferConfig.java
@@ -52,7 +52,7 @@
packConfig.fromConfig(cfg);
}
- /** @return configured timeout, in seconds. 0 if the timeout is infinite. */
+ /** Returns configured timeout, in seconds. 0 if the timeout is infinite. */
public int getTimeout() {
return timeout;
}
diff --git a/java/com/google/gerrit/server/git/meta/MetaDataUpdate.java b/java/com/google/gerrit/server/git/meta/MetaDataUpdate.java
index e90f58b..27d5da9 100644
--- a/java/com/google/gerrit/server/git/meta/MetaDataUpdate.java
+++ b/java/com/google/gerrit/server/git/meta/MetaDataUpdate.java
@@ -160,7 +160,7 @@
return create(name, null);
}
- /** @see User#create(Project.NameKey, IdentifiedUser, BatchRefUpdate) */
+ /** See {@link User#create(Project.NameKey, IdentifiedUser, BatchRefUpdate)} */
public MetaDataUpdate create(Project.NameKey name, BatchRefUpdate batch)
throws RepositoryNotFoundException, IOException {
Repository repo = mgr.openRepository(name);
@@ -234,7 +234,7 @@
this.closeRepository = closeRepository;
}
- /** @return batch in which to run the update, or {@code null} for no batch. */
+ /** Returns batch in which to run the update, or {@code null} for no batch. */
BatchRefUpdate getBatch() {
return batch;
}
diff --git a/java/com/google/gerrit/server/git/meta/VersionedMetaData.java b/java/com/google/gerrit/server/git/meta/VersionedMetaData.java
index 999ed4e..a42ab8f 100644
--- a/java/com/google/gerrit/server/git/meta/VersionedMetaData.java
+++ b/java/com/google/gerrit/server/git/meta/VersionedMetaData.java
@@ -100,7 +100,7 @@
protected ObjectInserter inserter;
protected DirCache newTree;
- /** @return name of the reference storing this configuration. */
+ /** Returns name of the reference storing this configuration. */
protected abstract String getRefName();
/** Set up the metadata, parsing any state from the loaded revision. */
@@ -110,13 +110,11 @@
* Save any changes to the metadata in a commit.
*
* @return true if the commit should proceed, false to abort.
- * @throws IOException
- * @throws ConfigInvalidException
*/
protected abstract boolean onSave(CommitBuilder commit)
throws IOException, ConfigInvalidException;
- /** @return revision of the metadata that was loaded. */
+ /** Returns revision of the metadata that was loaded. */
@Nullable
public ObjectId getRevision() {
return ObjectIds.copyOrNull(revision);
@@ -130,8 +128,6 @@
*
* @param projectName the name of the project
* @param db repository to access.
- * @throws IOException
- * @throws ConfigInvalidException
*/
public void load(Project.NameKey projectName, Repository db)
throws IOException, ConfigInvalidException {
@@ -152,8 +148,6 @@
* @param projectName the name of the project
* @param db repository to access.
* @param id revision to load.
- * @throws IOException
- * @throws ConfigInvalidException
*/
public void load(Project.NameKey projectName, Repository db, @Nullable ObjectId id)
throws IOException, ConfigInvalidException {
@@ -176,8 +170,6 @@
* @param projectName the name of the project
* @param walk open walk to access to access.
* @param id revision to load.
- * @throws IOException
- * @throws ConfigInvalidException
*/
public void load(Project.NameKey projectName, RevWalk walk, ObjectId id)
throws IOException, ConfigInvalidException {
diff --git a/java/com/google/gerrit/server/git/receive/ReceiveCommits.java b/java/com/google/gerrit/server/git/receive/ReceiveCommits.java
index ec1a5c8..c1cd30c 100644
--- a/java/com/google/gerrit/server/git/receive/ReceiveCommits.java
+++ b/java/com/google/gerrit/server/git/receive/ReceiveCommits.java
@@ -1762,6 +1762,7 @@
}
@UsedAt(UsedAt.Project.GOOGLE)
+ @SuppressWarnings("unused") // unused in upstream, but used at Google
@Option(name = "--create-cod-token", usage = "create a token for consistency-on-demand")
private boolean createCodToken;
@@ -2918,8 +2919,6 @@
* </ul>
*
* @return whether the new commit is valid
- * @throws IOException
- * @throws PermissionBackendException
*/
boolean validateNewPatchSet() throws IOException, PermissionBackendException {
try (TraceTimer traceTimer = newTimer("validateNewPatchSet")) {
diff --git a/java/com/google/gerrit/server/git/validators/OnSubmitValidationListener.java b/java/com/google/gerrit/server/git/validators/OnSubmitValidationListener.java
index 432dda3..98f2aa2 100644
--- a/java/com/google/gerrit/server/git/validators/OnSubmitValidationListener.java
+++ b/java/com/google/gerrit/server/git/validators/OnSubmitValidationListener.java
@@ -76,8 +76,8 @@
}
/**
- * @return a map from ref to commands covering all ref operations to be performed on this
- * repository as part of the ongoing submit operation.
+ * Returns a map from ref to commands covering all ref operations to be performed on this
+ * repository as part of the ongoing submit operation.
*/
public ImmutableMap<String, ReceiveCommand> getCommands() {
return commands;
diff --git a/java/com/google/gerrit/server/group/db/GroupDelta.java b/java/com/google/gerrit/server/group/db/GroupDelta.java
index 4ef2450..69cb936 100644
--- a/java/com/google/gerrit/server/group/db/GroupDelta.java
+++ b/java/com/google/gerrit/server/group/db/GroupDelta.java
@@ -121,19 +121,39 @@
@AutoValue.Builder
public abstract static class Builder {
- /** @see #getName() */
+ /**
+ * Defines the new name of the group
+ *
+ * <p>See {@link #getName}.
+ */
public abstract Builder setName(AccountGroup.NameKey name);
- /** @see #getDescription() */
+ /**
+ * Defines the new description of the group
+ *
+ * <p>See {@link #getDescription()}}
+ */
public abstract Builder setDescription(String description);
- /** @see #getOwnerGroupUUID() */
+ /**
+ * Defines the new owner of the group
+ *
+ * <p>See {@link #getOwnerGroupUUID()}
+ */
public abstract Builder setOwnerGroupUUID(AccountGroup.UUID ownerGroupUUID);
- /** @see #getVisibleToAll() */
+ /**
+ * Defines the new state of the 'visibleToAll' flag of the group
+ *
+ * <p>See {@link #getVisibleToAll()}
+ */
public abstract Builder setVisibleToAll(boolean visibleToAll);
- /** @see #getMemberModification() */
+ /**
+ * Set {@link MemberModification} for the prospective {@link GroupDelta}
+ *
+ * <p>See {@link #getMemberModification()}
+ */
public abstract Builder setMemberModification(MemberModification memberModification);
/**
@@ -146,7 +166,11 @@
*/
public abstract MemberModification getMemberModification();
- /** @see #getSubgroupModification() */
+ /**
+ * Set {@link SubgroupModification} for the prospective {@link GroupDelta}
+ *
+ * <p>See {@link #getSubgroupModification()}
+ */
public abstract Builder setSubgroupModification(SubgroupModification subgroupModification);
/**
@@ -159,7 +183,12 @@
*/
public abstract SubgroupModification getSubgroupModification();
- /** @see #getUpdatedOn() */
+ /**
+ * Defines the {@code Timestamp} to be used for the NoteDb commits of the update. If not
+ * specified, the current {@code Timestamp} when creating the commit will be used.
+ *
+ * <p>See {@link #getUpdatedOn()}
+ */
public abstract Builder setUpdatedOn(Timestamp timestamp);
public abstract GroupDelta build();
diff --git a/java/com/google/gerrit/server/group/db/GroupsNoteDbConsistencyChecker.java b/java/com/google/gerrit/server/group/db/GroupsNoteDbConsistencyChecker.java
index 01ee811..24bcaf0 100644
--- a/java/com/google/gerrit/server/group/db/GroupsNoteDbConsistencyChecker.java
+++ b/java/com/google/gerrit/server/group/db/GroupsNoteDbConsistencyChecker.java
@@ -22,6 +22,7 @@
import com.google.common.collect.HashBiMap;
import com.google.common.collect.ImmutableList;
import com.google.common.flogger.FluentLogger;
+import com.google.errorprone.annotations.FormatMethod;
import com.google.gerrit.common.Nullable;
import com.google.gerrit.entities.AccountGroup;
import com.google.gerrit.entities.GroupReference;
@@ -138,8 +139,7 @@
Optional<Ref> maybeRef =
refs.stream().filter(r -> r.getName().equals(RefNames.REFS_GROUPNAMES)).findFirst();
if (!maybeRef.isPresent()) {
- String msg = String.format("ref %s does not exist", RefNames.REFS_GROUPNAMES);
- result.problems.add(error(msg));
+ result.problems.add(error("ref %s does not exist", RefNames.REFS_GROUPNAMES));
return;
}
Ref ref = maybeRef.get();
@@ -280,6 +280,7 @@
}
}
+ @FormatMethod
public static void logConsistencyProblemAsWarning(String fmt, Object... args) {
logConsistencyProblem(warning(fmt, args));
}
diff --git a/java/com/google/gerrit/server/group/db/InternalGroupCreation.java b/java/com/google/gerrit/server/group/db/InternalGroupCreation.java
index f4bf6e6..291c354 100644
--- a/java/com/google/gerrit/server/group/db/InternalGroupCreation.java
+++ b/java/com/google/gerrit/server/group/db/InternalGroupCreation.java
@@ -26,13 +26,13 @@
@AutoValue
public abstract class InternalGroupCreation {
- /** Defines the numeric ID the group should have. */
+ /** Defines the numeric ID the group should have */
public abstract AccountGroup.Id getId();
- /** Defines the name the group should have. */
+ /** Defines the name the group should have */
public abstract AccountGroup.NameKey getNameKey();
- /** Defines the UUID the group should have. */
+ /** Defines the UUID the group should have */
public abstract AccountGroup.UUID getGroupUUID();
public static Builder builder() {
@@ -41,13 +41,13 @@
@AutoValue.Builder
public abstract static class Builder {
- /** @see #getId() */
+ /** Defines the name the group should have */
public abstract InternalGroupCreation.Builder setId(AccountGroup.Id id);
- /** @see #getNameKey() */
+ /** Defines the name the group should have */
public abstract InternalGroupCreation.Builder setNameKey(AccountGroup.NameKey name);
- /** @see #getGroupUUID() */
+ /** Defines the UUID the group should have */
public abstract InternalGroupCreation.Builder setGroupUUID(AccountGroup.UUID groupUuid);
public abstract InternalGroupCreation build();
diff --git a/java/com/google/gerrit/server/index/VersionManager.java b/java/com/google/gerrit/server/index/VersionManager.java
index 56ce604..cdb69c6 100644
--- a/java/com/google/gerrit/server/index/VersionManager.java
+++ b/java/com/google/gerrit/server/index/VersionManager.java
@@ -107,7 +107,6 @@
* @param name index name
* @param force start re-index
* @return true if started, otherwise false.
- * @throws ReindexerAlreadyRunningException
*/
public synchronized boolean startReindexer(String name, boolean force)
throws ReindexerAlreadyRunningException {
@@ -125,7 +124,6 @@
*
* @param name index name
* @return true if index was activated, otherwise false.
- * @throws ReindexerAlreadyRunningException
*/
public synchronized boolean activateLatestIndex(String name)
throws ReindexerAlreadyRunningException {
diff --git a/java/com/google/gerrit/server/ioutil/HostPlatform.java b/java/com/google/gerrit/server/ioutil/HostPlatform.java
index 39e9c07..e27d17c 100644
--- a/java/com/google/gerrit/server/ioutil/HostPlatform.java
+++ b/java/com/google/gerrit/server/ioutil/HostPlatform.java
@@ -21,7 +21,7 @@
private static final boolean win32 = compute("windows");
private static final boolean mac = compute("mac");
- /** @return true if this JVM is running on a Windows platform. */
+ /** Returns true if this JVM is running on a Windows platform. */
public static boolean isWin32() {
return win32;
}
diff --git a/java/com/google/gerrit/server/ioutil/LimitedByteArrayOutputStream.java b/java/com/google/gerrit/server/ioutil/LimitedByteArrayOutputStream.java
index 015887b..a58d9ae 100644
--- a/java/com/google/gerrit/server/ioutil/LimitedByteArrayOutputStream.java
+++ b/java/com/google/gerrit/server/ioutil/LimitedByteArrayOutputStream.java
@@ -57,7 +57,7 @@
buffer.write(b, off, len);
}
- /** @return a newly allocated byte array with contents of the buffer. */
+ /** Returns a newly allocated byte array with contents of the buffer. */
public byte[] toByteArray() {
return buffer.toByteArray();
}
diff --git a/java/com/google/gerrit/server/logging/CallerFinder.java b/java/com/google/gerrit/server/logging/CallerFinder.java
index bd7e608..4cb4b7f 100644
--- a/java/com/google/gerrit/server/logging/CallerFinder.java
+++ b/java/com/google/gerrit/server/logging/CallerFinder.java
@@ -41,7 +41,7 @@
*
* <p>E.g. the stacktrace could look like this:
*
- * <pre>
+ * <pre>{@code
* GroupQueryProcessor(QueryProcessor<T>).query(List<String>, List<Predicate<T>>) line: 216
* GroupQueryProcessor(QueryProcessor<T>).query(List<Predicate<T>>) line: 188
* GroupQueryProcessor(QueryProcessor<T>).query(Predicate<T>) line: 171
@@ -52,7 +52,7 @@
* GroupCacheImpl$ByNameLoader.load(Object) line: 1
* LocalCache$LoadingValueReference<K,V>.loadFuture(K, CacheLoader<? super K,V>) line: 3527
* ...
- * </pre>
+ * }</pre>
*
* <p>The first interesting caller is {@code GroupCacheImpl$ByNameLoader.load(String) line: 166}. To
* find this caller from the stacktrace we could specify {@link
diff --git a/java/com/google/gerrit/server/logging/LoggingContextAwareRunnable.java b/java/com/google/gerrit/server/logging/LoggingContextAwareRunnable.java
index 3c4c563..1bba018 100644
--- a/java/com/google/gerrit/server/logging/LoggingContextAwareRunnable.java
+++ b/java/com/google/gerrit/server/logging/LoggingContextAwareRunnable.java
@@ -28,24 +28,24 @@
*
* <p>Example:
*
- * <pre>
- * try (TraceContext traceContext = TraceContext.newTrace(true, ...)) {
- * executor
- * .submit(new LoggingContextAwareRunnable(
- * () -> {
- * // Tracing is enabled since the runnable is created within the TraceContext.
- * // Tracing is even enabled if the executor runs the runnable only after the
- * // TraceContext was closed.
+ * <pre>{@code
+ * try (TraceContext traceContext = TraceContext.newTrace(true, ...)) {
+ * executor
+ * .submit(new LoggingContextAwareRunnable(
+ * () -> {
+ * // Tracing is enabled since the runnable is created within the TraceContext.
+ * // Tracing is even enabled if the executor runs the runnable only after the
+ * // TraceContext was closed.
*
- * // The tag "foo=bar" is not set, since it was added to the logging context only
- * // after this runnable was created.
+ * // The tag "foo=bar" is not set, since it was added to the logging context only
+ * // after this runnable was created.
*
- * // do stuff
- * }))
- * .get();
- * traceContext.addTag("foo", "bar");
- * }
- * </pre>
+ * // do stuff
+ * }))
+ * .get();
+ * traceContext.addTag("foo", "bar");
+ * }
+ * }</pre>
*
* @see LoggingContextAwareCallable
*/
diff --git a/java/com/google/gerrit/server/mail/receive/MailReceiver.java b/java/com/google/gerrit/server/mail/receive/MailReceiver.java
index dc99b46..e383207 100644
--- a/java/com/google/gerrit/server/mail/receive/MailReceiver.java
+++ b/java/com/google/gerrit/server/mail/receive/MailReceiver.java
@@ -110,8 +110,6 @@
* requestDeletion will enqueue an email for deletion and delete it the next time we connect to
* the email server. This does not guarantee deletion as the Gerrit instance might fail before we
* connect to the email server.
- *
- * @param messageId
*/
public void requestDeletion(String messageId) {
pendingDeletion.add(messageId);
diff --git a/java/com/google/gerrit/server/mail/send/CommentSender.java b/java/com/google/gerrit/server/mail/send/CommentSender.java
index 4593584..5a7352a 100644
--- a/java/com/google/gerrit/server/mail/send/CommentSender.java
+++ b/java/com/google/gerrit/server/mail/send/CommentSender.java
@@ -14,6 +14,7 @@
package com.google.gerrit.server.mail.send;
+import static com.google.gerrit.entities.Patch.PATCHSET_LEVEL;
import static java.util.stream.Collectors.toList;
import com.google.common.base.Strings;
@@ -71,23 +72,23 @@
public PatchFile fileData;
public List<Comment> comments = new ArrayList<>();
- /** @return a web link to a comment for a change. */
+ /** Returns a web link to a comment for a change. */
public String getCommentLink(String uuid) {
return args.urlFormatter.get().getInlineCommentView(change, uuid).orElse(null);
}
- /** @return a web link to the comment tab view of a change. */
+ /** Returns a web link to the comment tab view of a change. */
public String getCommentsTabLink() {
return args.urlFormatter.get().getCommentsTabView(change).orElse(null);
}
- /** @return a web link to the findings tab view of a change. */
+ /** Returns a web link to the findings tab view of a change. */
public String getFindingsTabLink() {
return args.urlFormatter.get().getFindingsTabView(change).orElse(null);
}
/**
- * @return A title for the group, i.e. "Commit Message", "Merge List", or "File [[filename]]".
+ * Returns a title for the group, i.e. "Commit Message", "Merge List", or "File [[filename]]".
*/
public String getTitle() {
if (Patch.COMMIT_MSG.equals(filename)) {
@@ -180,8 +181,8 @@
}
/**
- * @return a list of FileCommentGroup objects representing the inline comments grouped by the
- * file.
+ * Returns a list of FileCommentGroup objects representing the inline comments grouped by the
+ * file.
*/
private List<CommentSender.FileCommentGroup> getGroupedInlineComments(Repository repo) {
List<CommentSender.FileCommentGroup> groups = new ArrayList<>();
@@ -220,7 +221,7 @@
}
}
- if (currentGroup.fileData != null) {
+ if (currentGroup.filename.equals(PATCHSET_LEVEL) || currentGroup.fileData != null) {
currentGroup.comments.add(c);
}
}
@@ -267,7 +268,7 @@
}
/**
- * @return the lines of file content in fileData that are encompassed by range on the given side.
+ * Returns the lines of file content in fileData that are encompassed by range on the given side.
*/
private List<String> getLinesByRange(Comment.Range range, PatchFile fileData, short side) {
List<String> lines = new ArrayList<>();
@@ -330,9 +331,9 @@
}
/**
- * @return a shortened version of the given comment's message. Will be shortened to 100 characters
- * or the first line, or following the last period within the first 100 characters, whichever
- * is shorter. If the message is shortened, an ellipsis is appended.
+ * Returns a shortened version of the given comment's message. Will be shortened to 100 characters
+ * or the first line, or following the last period within the first 100 characters, whichever is
+ * shorter. If the message is shortened, an ellipsis is appended.
*/
protected static String getShortenedCommentMessage(String message) {
int threshold = 100;
@@ -368,8 +369,8 @@
}
/**
- * @return grouped inline comment data mapped to data structures that are suitable for passing
- * into Soy.
+ * Returns grouped inline comment data mapped to data structures that are suitable for passing
+ * into Soy.
*/
private List<Map<String, Object>> getCommentGroupsTemplateData(Repository repo) {
List<Map<String, Object>> commentGroups = new ArrayList<>();
@@ -382,7 +383,9 @@
List<Map<String, Object>> commentsList = new ArrayList<>();
for (Comment comment : group.comments) {
Map<String, Object> commentData = new HashMap<>();
- commentData.put("lines", getLinesOfComment(comment, group.fileData));
+ if (group.fileData != null) {
+ commentData.put("lines", getLinesOfComment(comment, group.fileData));
+ }
commentData.put("message", comment.message.trim());
List<CommentFormatter.Block> blocks = CommentFormatter.parse(comment.message);
commentData.put("messageBlocks", commentBlocksToSoyData(blocks));
diff --git a/java/com/google/gerrit/server/mail/send/MessageIdGenerator.java b/java/com/google/gerrit/server/mail/send/MessageIdGenerator.java
index aa683f6..b32c43a 100644
--- a/java/com/google/gerrit/server/mail/send/MessageIdGenerator.java
+++ b/java/com/google/gerrit/server/mail/send/MessageIdGenerator.java
@@ -58,8 +58,6 @@
/**
* Create a {@link MessageId} as a result of a change update.
*
- * @param repoView
- * @param patchsetId
* @return MessageId that depends on the patchset.
*/
public MessageId fromChangeUpdate(RepoView repoView, PatchSet.Id patchsetId) {
@@ -89,8 +87,9 @@
}
/**
- * @param accountId Create a {@link MessageId} as a result of an account update.
- * @return MessageId that depends on the account id.
+ * Create a {@link MessageId} as a result of an account update
+ *
+ * @return {@link MessageId} that depends on the account id.
*/
public MessageId fromAccountUpdate(Account.Id accountId) {
String userRef = RefNames.refsUsers(accountId);
@@ -113,8 +112,6 @@
* Create a {@link MessageId} from a reason, Account.Id, and timestamp.
*
* @param reason for performing this account update
- * @param accountId
- * @param timestamp
* @return MessageId that depends on the reason, accountId, and timestamp.
*/
public MessageId fromReasonAccountIdAndTimestamp(
diff --git a/java/com/google/gerrit/server/mail/send/OutgoingEmail.java b/java/com/google/gerrit/server/mail/send/OutgoingEmail.java
index 8547336..8824cbd 100644
--- a/java/com/google/gerrit/server/mail/send/OutgoingEmail.java
+++ b/java/com/google/gerrit/server/mail/send/OutgoingEmail.java
@@ -95,11 +95,7 @@
this.messageId = messageId;
}
- /**
- * Format and enqueue the message for delivery.
- *
- * @throws EmailException
- */
+ /** Format and enqueue the message for delivery. */
public void send() throws EmailException {
try {
args.retryHelper
@@ -185,7 +181,8 @@
// drop them from the recipient lists, but only if the user is not being impersonated.
//
logger.atFine().log(
- "Not CCing email sender %s because the email strategy of this user is not %s but %s",
+ "Not CCing email sender %s because the email strategy of this user is not %s but"
+ + " %s",
fromUser.get().account().id(),
CC_ON_OWN_COMMENTS,
senderPrefs != null ? senderPrefs.getEmailStrategy() : null);
@@ -543,9 +540,9 @@
}
/**
+ * Returns whether this email is visible to the given account
+ *
* @param to account.
- * @throws PermissionBackendException
- * @return whether this email is visible to the given account.
*/
protected boolean isVisibleTo(Account.Id to) throws PermissionBackendException {
return true;
diff --git a/java/com/google/gerrit/server/notedb/AbstractChangeNotes.java b/java/com/google/gerrit/server/notedb/AbstractChangeNotes.java
index a7c7757..d71f9ff 100644
--- a/java/com/google/gerrit/server/notedb/AbstractChangeNotes.java
+++ b/java/com/google/gerrit/server/notedb/AbstractChangeNotes.java
@@ -134,7 +134,7 @@
return changeId;
}
- /** @return revision of the metadata that was loaded. */
+ /** Returns revision of the metadata that was loaded. */
public ObjectId getRevision() {
return revision;
}
@@ -210,12 +210,12 @@
protected abstract void loadDefaults();
/**
- * @return the NameKey for the project where the notes should be stored, which is not necessarily
- * the same as the change's project.
+ * Returns the NameKey for the project where the notes should be stored, which is not necessarily
+ * the same as the change's project.
*/
public abstract Project.NameKey getProjectName();
- /** @return name of the reference storing this configuration. */
+ /** Returns name of the reference storing this configuration. */
protected abstract String getRefName();
/** Set up the metadata, parsing any state from the loaded revision. */
diff --git a/java/com/google/gerrit/server/notedb/AbstractChangeUpdate.java b/java/com/google/gerrit/server/notedb/AbstractChangeUpdate.java
index 8e6606e..6677490 100644
--- a/java/com/google/gerrit/server/notedb/AbstractChangeUpdate.java
+++ b/java/com/google/gerrit/server/notedb/AbstractChangeUpdate.java
@@ -122,12 +122,11 @@
}
/**
- * @return notes for the state of this change prior to this update. If this update is part of a
- * series managed by a {@link NoteDbUpdateManager}, then this reflects the state prior to the
- * first update in the series. A null return value can only happen when the change is being
- * rebuilt from NoteDb. A change that is in the process of being created will result in a
- * non-null return value from this method, but a null return value from {@link
- * ChangeNotes#getRevision()}.
+ * Returns notes for the state of this change prior to this update. If this update is part of a
+ * series managed by a {@link NoteDbUpdateManager}, then this reflects the state prior to the
+ * first update in the series. A null return value can only happen when the change is being
+ * rebuilt from NoteDb. A change that is in the process of being created will result in a non-null
+ * return value from this method, but a null return value from {@link ChangeNotes#getRevision()}.
*/
@Nullable
public ChangeNotes getNotes() {
@@ -173,8 +172,8 @@
}
/**
- * @return the NameKey for the project where the update will be stored, which is not necessarily
- * the same as the change's project.
+ * Returns the NameKey for the project where the update will be stored, which is not necessarily
+ * the same as the change's project.
*/
protected abstract Project.NameKey getProjectName();
diff --git a/java/com/google/gerrit/server/notedb/ChangeNotes.java b/java/com/google/gerrit/server/notedb/ChangeNotes.java
index 973042f..2d9b014 100644
--- a/java/com/google/gerrit/server/notedb/ChangeNotes.java
+++ b/java/com/google/gerrit/server/notedb/ChangeNotes.java
@@ -37,6 +37,7 @@
import com.google.common.collect.Sets;
import com.google.common.collect.Sets.SetView;
import com.google.common.flogger.FluentLogger;
+import com.google.errorprone.annotations.FormatMethod;
import com.google.gerrit.common.Nullable;
import com.google.gerrit.entities.Account;
import com.google.gerrit.entities.AttentionSetUpdate;
@@ -91,6 +92,7 @@
public static final Ordering<ChangeMessage> MESSAGE_BY_TIME =
Ordering.from(comparing(ChangeMessage::getWrittenOn));
+ @FormatMethod
public static ConfigInvalidException parseException(
Change.Id changeId, String fmt, Object... args) {
return new ConfigInvalidException("Change " + changeId + ": " + String.format(fmt, args));
@@ -407,17 +409,17 @@
return state.reviewers();
}
- /** @return reviewers that do not currently have a Gerrit account and were added by email. */
+ /** Returns reviewers that do not currently have a Gerrit account and were added by email. */
public ReviewerByEmailSet getReviewersByEmail() {
return state.reviewersByEmail();
}
- /** @return reviewers that were modified during this change's current WIP phase. */
+ /** Returns reviewers that were modified during this change's current WIP phase. */
public ReviewerSet getPendingReviewers() {
return state.pendingReviewers();
}
- /** @return reviewers by email that were modified during this change's current WIP phase. */
+ /** Returns reviewers by email that were modified during this change's current WIP phase. */
public ReviewerByEmailSet getPendingReviewersByEmail() {
return state.pendingReviewersByEmail();
}
@@ -447,8 +449,8 @@
}
/**
- * @return an ImmutableSet of Account.Ids of all users that have been assigned to this change. The
- * order of the set is the order in which they were assigned.
+ * Returns an ImmutableSet of Account.Ids of all users that have been assigned to this change. The
+ * order of the set is the order in which they were assigned.
*/
public ImmutableSet<Account.Id> getPastAssignees() {
return Lists.reverse(state.assigneeUpdates()).stream()
@@ -459,37 +461,37 @@
}
/**
- * @return an ImmutableList of AssigneeStatusUpdate of all the updates to the assignee field to
- * this change. The order of the list is from most recent updates to least recent.
+ * Returns an ImmutableList of AssigneeStatusUpdate of all the updates to the assignee field to
+ * this change. The order of the list is from most recent updates to least recent.
*/
public ImmutableList<AssigneeStatusUpdate> getAssigneeUpdates() {
return state.assigneeUpdates();
}
- /** @return a ImmutableSet of all hashtags for this change sorted in alphabetical order. */
+ /** Returns an ImmutableSet of all hashtags for this change sorted in alphabetical order. */
public ImmutableSet<String> getHashtags() {
return ImmutableSortedSet.copyOf(state.hashtags());
}
- /** @return a list of all users who have ever been a reviewer on this change. */
+ /** Returns a list of all users who have ever been a reviewer on this change. */
public ImmutableList<Account.Id> getAllPastReviewers() {
return state.allPastReviewers();
}
/**
- * @return submit records stored during the most recent submit; only for changes that were
- * actually submitted.
+ * Returns submit records stored during the most recent submit; only for changes that were
+ * actually submitted.
*/
public ImmutableList<SubmitRecord> getSubmitRecords() {
return state.submitRecords();
}
- /** @return all change messages, in chronological order, oldest first. */
+ /** Returns all change messages, in chronological order, oldest first. */
public ImmutableList<ChangeMessage> getChangeMessages() {
return state.changeMessages();
}
- /** @return inline comments on each revision. */
+ /** Returns inline comments on each revision. */
public ImmutableListMultimap<ObjectId, HumanComment> getHumanComments() {
return state.publishedComments();
}
@@ -509,7 +511,7 @@
return state.updateCount();
}
- /** @return {@link Optional} value of time when the change was merged. */
+ /** Returns {@link Optional} value of time when the change was merged. */
public Optional<Timestamp> getMergedOn() {
return Optional.ofNullable(state.mergedOn());
}
diff --git a/java/com/google/gerrit/server/notedb/ChangeNotesParser.java b/java/com/google/gerrit/server/notedb/ChangeNotesParser.java
index 1179af8..5cf3a64 100644
--- a/java/com/google/gerrit/server/notedb/ChangeNotesParser.java
+++ b/java/com/google/gerrit/server/notedb/ChangeNotesParser.java
@@ -56,6 +56,7 @@
import com.google.common.collect.Tables;
import com.google.common.flogger.FluentLogger;
import com.google.common.primitives.Ints;
+import com.google.errorprone.annotations.FormatMethod;
import com.google.gerrit.common.Nullable;
import com.google.gerrit.entities.Account;
import com.google.gerrit.entities.Address;
@@ -1239,6 +1240,7 @@
}
if (!missing.isEmpty()) {
throw parseException(
+ "%s",
"Missing footers: " + missing.stream().map(FooterKey::getName).collect(joining(", ")));
}
}
@@ -1272,6 +1274,7 @@
return pending != null && pending.commitId().isPresent();
}
+ @FormatMethod
private ConfigInvalidException parseException(String fmt, Object... args) {
return ChangeNotes.parseException(id, fmt, args);
}
diff --git a/java/com/google/gerrit/server/notedb/ChangeUpdate.java b/java/com/google/gerrit/server/notedb/ChangeUpdate.java
index d5230f8..5acea1b 100644
--- a/java/com/google/gerrit/server/notedb/ChangeUpdate.java
+++ b/java/com/google/gerrit/server/notedb/ChangeUpdate.java
@@ -505,7 +505,7 @@
this.cherryPickOf = Optional.empty();
}
- /** @return the tree id for the updated tree */
+ /** Returns the tree id for the updated tree */
private ObjectId storeRevisionNotes(RevWalk rw, ObjectInserter inserter, ObjectId curr)
throws ConfigInvalidException, IOException {
if (submitRequirementResults.isEmpty() && comments.isEmpty() && pushCert == null) {
diff --git a/java/com/google/gerrit/server/notedb/DeleteChangeMessageRewriter.java b/java/com/google/gerrit/server/notedb/DeleteChangeMessageRewriter.java
index e07c793..6d6d53d 100644
--- a/java/com/google/gerrit/server/notedb/DeleteChangeMessageRewriter.java
+++ b/java/com/google/gerrit/server/notedb/DeleteChangeMessageRewriter.java
@@ -110,7 +110,6 @@
* @param commitMessage the full commit message of the new commit.
* @param inserter the {@code ObjectInserter} for the rewrite process.
* @return the {@code objectId} of the new commit.
- * @throws IOException
*/
private ObjectId rewriteOneCommit(
RevCommit originalCommit,
diff --git a/java/com/google/gerrit/server/notedb/DeleteCommentRewriter.java b/java/com/google/gerrit/server/notedb/DeleteCommentRewriter.java
index d0b6247..e8c0fda 100644
--- a/java/com/google/gerrit/server/notedb/DeleteCommentRewriter.java
+++ b/java/com/google/gerrit/server/notedb/DeleteCommentRewriter.java
@@ -191,8 +191,6 @@
* @param putInComments the comments put in by this commit.
* @param deletedComments the comments deleted by this commit.
* @return the {@code objectId} of the new commit.
- * @throws IOException
- * @throws ConfigInvalidException
*/
private ObjectId rewriteCommit(
RevCommit originalCommit,
diff --git a/java/com/google/gerrit/server/patch/PatchFile.java b/java/com/google/gerrit/server/patch/PatchFile.java
index 3cc89f85..81355cc 100644
--- a/java/com/google/gerrit/server/patch/PatchFile.java
+++ b/java/com/google/gerrit/server/patch/PatchFile.java
@@ -62,6 +62,11 @@
.findFirst()
.orElse(FileDiffOutput.empty(fileName, ObjectId.zeroId(), ObjectId.zeroId()));
+ if (Patch.PATCHSET_LEVEL.equals(fileName)) {
+ aTree = null;
+ bTree = null;
+ return;
+ }
try (ObjectReader reader = repo.newObjectReader();
RevWalk rw = new RevWalk(reader)) {
final RevCommit bCommit = rw.parseCommit(diff.newCommitId());
@@ -117,7 +122,6 @@
* @param line the line number to extract (1 based; 1 is the first line).
* @return the string version of the file line.
* @throws IOException the patch or complete file content cannot be read.
- * @throws NoSuchEntityException
*/
public String getLine(int file, int line) throws IOException, NoSuchEntityException {
switch (file) {
@@ -144,7 +148,7 @@
private Text load(ObjectId tree, String path)
throws MissingObjectException, IncorrectObjectTypeException, CorruptObjectException,
IOException {
- if (path == null) {
+ if (path == null || Patch.PATCHSET_LEVEL.equals(path)) {
return Text.EMPTY;
}
final TreeWalk tw = TreeWalk.forPath(repo, path, tree);
diff --git a/java/com/google/gerrit/server/patch/PatchList.java b/java/com/google/gerrit/server/patch/PatchList.java
index cb95553..b983fb8 100644
--- a/java/com/google/gerrit/server/patch/PatchList.java
+++ b/java/com/google/gerrit/server/patch/PatchList.java
@@ -140,17 +140,17 @@
return Collections.unmodifiableList(Arrays.asList(patches));
}
- /** @return the comparison type */
+ /** Returns the comparison type */
public ComparisonType getComparisonType() {
return comparisonType;
}
- /** @return total number of new lines added. */
+ /** Returns total number of new lines added. */
public int getInsertions() {
return insertions;
}
- /** @return total number of lines removed. */
+ /** Returns total number of lines removed. */
public int getDeletions() {
return deletions;
}
diff --git a/java/com/google/gerrit/server/patch/diff/ModifiedFilesCache.java b/java/com/google/gerrit/server/patch/diff/ModifiedFilesCache.java
index 56f49c9..76d1710 100644
--- a/java/com/google/gerrit/server/patch/diff/ModifiedFilesCache.java
+++ b/java/com/google/gerrit/server/patch/diff/ModifiedFilesCache.java
@@ -35,9 +35,10 @@
public interface ModifiedFilesCache {
/**
+ * Returns the list of {@link ModifiedFile}s between the 2 git commits identified by the key
+ *
* @param key used to identify two git commits and contains other attributes to control the diff
* calculation.
- * @return the list of {@link ModifiedFile}s between the 2 git commits identified by the key.
* @throws DiffNotAvailableException the supplied commits IDs of the key do no exist, are not IDs
* of a commit, or an exception occurred while reading a pack file.
*/
diff --git a/java/com/google/gerrit/server/patch/diff/ModifiedFilesCacheKey.java b/java/com/google/gerrit/server/patch/diff/ModifiedFilesCacheKey.java
index 2ac3f5e..4a406c8 100644
--- a/java/com/google/gerrit/server/patch/diff/ModifiedFilesCacheKey.java
+++ b/java/com/google/gerrit/server/patch/diff/ModifiedFilesCacheKey.java
@@ -32,10 +32,10 @@
/** A specific git project / repository. */
public abstract Project.NameKey project();
- /** @return the old commit ID used in the git tree diff */
+ /** Returns the old commit ID used in the git tree diff */
public abstract ObjectId aCommit();
- /** @return the new commit ID used in the git tree diff */
+ /** Returns the new commit ID used in the git tree diff */
public abstract ObjectId bCommit();
/**
diff --git a/java/com/google/gerrit/server/permissions/LabelPermission.java b/java/com/google/gerrit/server/permissions/LabelPermission.java
index 268570c..c266caa 100644
--- a/java/com/google/gerrit/server/permissions/LabelPermission.java
+++ b/java/com/google/gerrit/server/permissions/LabelPermission.java
@@ -71,12 +71,12 @@
this.name = LabelType.checkName(name);
}
- /** @return {@code SELF} or {@code ON_BEHALF_OF} (or labelAs). */
+ /** Returns {@code SELF} or {@code ON_BEHALF_OF} (or labelAs). */
public ForUser forUser() {
return forUser;
}
- /** @return name of the label, e.g. {@code "Code-Review"}. */
+ /** Returns name of the label, e.g. {@code "Code-Review"}. */
public String label() {
return name;
}
@@ -199,17 +199,17 @@
this.label = requireNonNull(label, "LabelVote");
}
- /** @return {@code SELF} or {@code ON_BEHALF_OF} (or labelAs). */
+ /** Returns {@code SELF} or {@code ON_BEHALF_OF} (or labelAs). */
public ForUser forUser() {
return forUser;
}
- /** @return name of the label, e.g. {@code "Code-Review"}. */
+ /** Returns name of the label, e.g. {@code "Code-Review"}. */
public String label() {
return label.label();
}
- /** @return specific value of the label, e.g. 1 or 2. */
+ /** Returns specific value of the label, e.g. 1 or 2. */
public short value() {
return label.value();
}
diff --git a/java/com/google/gerrit/server/permissions/PermissionCollection.java b/java/com/google/gerrit/server/permissions/PermissionCollection.java
index ddba52b..4b8db1c 100644
--- a/java/com/google/gerrit/server/permissions/PermissionCollection.java
+++ b/java/com/google/gerrit/server/permissions/PermissionCollection.java
@@ -277,8 +277,8 @@
}
/**
- * @return true if a "${username}" pattern might need to be expanded to build this collection,
- * making the results user specific.
+ * Returns true if a "${username}" pattern might need to be expanded to build this collection,
+ * making the results user specific.
*/
public boolean isUserSpecific() {
return perUser;
diff --git a/java/com/google/gerrit/server/permissions/ProjectControl.java b/java/com/google/gerrit/server/permissions/ProjectControl.java
index a92fde0..1203049 100644
--- a/java/com/google/gerrit/server/permissions/ProjectControl.java
+++ b/java/com/google/gerrit/server/permissions/ProjectControl.java
@@ -154,8 +154,8 @@
}
/**
- * @return {@code Capable.OK} if the user can upload to at least one reference. Does not check
- * Contributor Agreements.
+ * Returns {@code Capable.OK} if the user can upload to at least one reference. Does not check
+ * Contributor Agreements.
*/
boolean canPushToAtLeastOneRef() {
return canPerformOnAnyRef(Permission.PUSH)
diff --git a/java/com/google/gerrit/server/permissions/RefControl.java b/java/com/google/gerrit/server/permissions/RefControl.java
index f800207..6b51335 100644
--- a/java/com/google/gerrit/server/permissions/RefControl.java
+++ b/java/com/google/gerrit/server/permissions/RefControl.java
@@ -135,19 +135,19 @@
return hasReadPermissionOnRef;
}
- /** @return true if this user can add a new patch set to this ref */
+ /** Returns true if this user can add a new patch set to this ref */
boolean canAddPatchSet() {
return projectControl
.controlForRef(MagicBranch.NEW_CHANGE + refName)
.canPerform(Permission.ADD_PATCH_SET);
}
- /** @return true if this user can rebase changes on this ref */
+ /** Returns true if this user can rebase changes on this ref */
boolean canRebase() {
return canPerform(Permission.REBASE);
}
- /** @return true if this user can submit patch sets to this ref */
+ /** Returns true if this user can submit patch sets to this ref */
boolean canSubmit(boolean isChangeOwner) {
if (RefNames.REFS_CONFIG.equals(refName)) {
// Always allow project owners to submit configuration changes.
@@ -160,12 +160,12 @@
return canPerform(Permission.SUBMIT, isChangeOwner, false);
}
- /** @return true if this user can force edit topic names. */
+ /** Returns true if this user can force edit topic names. */
boolean canForceEditTopicName() {
return canPerform(Permission.EDIT_TOPIC_NAME, false, true);
}
- /** @return true if this user can delete changes. */
+ /** Returns true if this user can delete changes. */
boolean canDeleteChanges(boolean isChangeOwner) {
return canPerform(Permission.DELETE_CHANGES)
|| (isChangeOwner && canPerform(Permission.DELETE_OWN_CHANGES, isChangeOwner, false));
@@ -201,12 +201,12 @@
return canPerform(Permission.REVERT);
}
- /** @return true if this user can submit merge patch sets to this ref */
+ /** Returns true if this user can submit merge patch sets to this ref */
private boolean canUploadMerges() {
return projectControl.controlForRef("refs/for/" + refName).canPerform(Permission.PUSH_MERGE);
}
- /** @return true if the user can update the reference as a fast-forward. */
+ /** Returns true if the user can update the reference as a fast-forward. */
private boolean canUpdate() {
if (RefNames.REFS_CONFIG.equals(refName) && !projectControl.isOwner()) {
// Pushing requires being at least project owner, in addition to push.
@@ -225,7 +225,7 @@
return canPerform(Permission.PUSH);
}
- /** @return true if the user can rewind (force push) the reference. */
+ /** Returns true if the user can rewind (force push) the reference. */
private boolean canForceUpdate() {
if (canPushWithForce()) {
return true;
@@ -281,7 +281,7 @@
}
}
- /** @return true if this user can forge the author line in a commit. */
+ /** Returns true if this user can forge the author line in a commit. */
private boolean canForgeAuthor() {
if (canForgeAuthor == null) {
canForgeAuthor = canPerform(Permission.FORGE_AUTHOR);
@@ -289,7 +289,7 @@
return canForgeAuthor;
}
- /** @return true if this user can forge the committer line in a commit. */
+ /** Returns true if this user can forge the committer line in a commit. */
private boolean canForgeCommitter() {
if (canForgeCommitter == null) {
canForgeCommitter = canPerform(Permission.FORGE_COMMITTER);
@@ -297,7 +297,7 @@
return canForgeCommitter;
}
- /** @return true if this user can forge the server on the committer line. */
+ /** Returns true if this user can forge the server on the committer line. */
private boolean canForgeGerritServerIdentity() {
return canPerform(Permission.FORGE_SERVER);
}
@@ -364,7 +364,9 @@
}
return new PermissionRange(
- permissionName, Math.max(voteMin, blockAllowMin), Math.min(voteMax, blockAllowMax));
+ permissionName,
+ /* min= */ Math.max(voteMin, blockAllowMin),
+ /* max= */ Math.min(voteMax, blockAllowMax));
}
private boolean isBlocked(String permissionName, boolean isChangeOwner, boolean withForce) {
@@ -560,7 +562,8 @@
break;
case FORGE_COMMITTER:
pde.setAdvice(
- "You need 'Forge Committer' rights to push commits with another user as committer.");
+ "You need 'Forge Committer' rights to push commits with another user as"
+ + " committer.");
break;
case FORGE_SERVER:
pde.setAdvice(
diff --git a/java/com/google/gerrit/server/plugincontext/PluginContext.java b/java/com/google/gerrit/server/plugincontext/PluginContext.java
index ef2e181..a5fad56 100644
--- a/java/com/google/gerrit/server/plugincontext/PluginContext.java
+++ b/java/com/google/gerrit/server/plugincontext/PluginContext.java
@@ -54,7 +54,7 @@
* <p>A plugin context can be manually opened by invoking the newTrace methods. This should only be
* needed if an extension throws multiple exceptions that need to be handled:
*
- * <pre>
+ * <pre>{@code
* public interface Foo {
* void doFoo() throws Exception1, Exception2, Exception3;
* }
@@ -66,7 +66,7 @@
* fooExtension.get().doFoo();
* }
* }
- * </pre>
+ * }</pre>
*
* <p>This class hosts static methods with generic functionality to invoke plugin extensions with a
* trace context that are commonly used by {@link PluginItemContext}, {@link PluginSetContext} and
diff --git a/java/com/google/gerrit/server/plugincontext/PluginItemContext.java b/java/com/google/gerrit/server/plugincontext/PluginItemContext.java
index 421b3ad..e88a6fe 100644
--- a/java/com/google/gerrit/server/plugincontext/PluginItemContext.java
+++ b/java/com/google/gerrit/server/plugincontext/PluginItemContext.java
@@ -40,46 +40,46 @@
*
* <p>Example if all exceptions should be caught and logged:
*
- * <pre>
+ * <pre>{@code
* fooPluginItemContext.run(foo -> foo.doFoo());
- * </pre>
+ * }</pre>
*
* <p>Example if all exceptions, but one, should be caught and logged:
*
- * <pre>
+ * <pre>{@code
* try {
* fooPluginItemContext.run(foo -> foo.doFoo(), MyException.class);
* } catch (MyException e) {
* // handle the exception
* }
- * </pre>
+ * }</pre>
*
* <p>Example if return values should be handled:
*
- * <pre>
+ * <pre>{@code
* Object result = fooPluginItemContext.call(foo -> foo.getFoo());
- * </pre>
+ * }</pre>
*
* <p>Example if return values and a single exception should be handled:
*
- * <pre>
+ * <pre>{@code
* Object result;
* try {
* result = fooPluginItemContext.call(foo -> foo.getFoo(), MyException.class);
* } catch (MyException e) {
* // handle the exception
* }
- * </pre>
+ * }</pre>
*
* <p>Example if several exceptions should be handled:
*
- * <pre>
+ * <pre>{@code
* try (TraceContext traceContext = PluginContext.newTrace(fooDynamicItem.getEntry())) {
* fooDynamicItem.get().doFoo();
* } catch (MyException1 | MyException2 | MyException3 e) {
* // handle the exception
* }
- * </pre>
+ * }</pre>
*/
public class PluginItemContext<T> {
@Nullable private final DynamicItem<T> dynamicItem;
diff --git a/java/com/google/gerrit/server/plugincontext/PluginMapContext.java b/java/com/google/gerrit/server/plugincontext/PluginMapContext.java
index b02ad27..fb50cd5 100644
--- a/java/com/google/gerrit/server/plugincontext/PluginMapContext.java
+++ b/java/com/google/gerrit/server/plugincontext/PluginMapContext.java
@@ -33,15 +33,15 @@
*
* <p>Example if all exceptions should be caught and logged:
*
- * <pre>
+ * <pre>{@code
* Map<String, Object> results = new HashMap<>();
* fooPluginMapContext.runEach(
* extension -> results.put(extension.getExportName(), extension.get().getFoo());
- * </pre>
+ * }</pre>
*
* <p>Example if all exceptions, but one, should be caught and logged:
*
- * <pre>
+ * <pre>{@code
* Map<String, Object> results = new HashMap<>();
* try {
* fooPluginMapContext.runEach(
@@ -50,22 +50,22 @@
* } catch (MyException e) {
* // handle the exception
* }
- * </pre>
+ * }</pre>
*
* <p>Example if return values should be handled:
*
- * <pre>
+ * <pre>{@code
* Map<String, Object> results = new HashMap<>();
* for (PluginMapEntryContext<Foo> c : fooPluginMapContext) {
* if (c.call(extension -> extension.get().handles(x))) {
* c.run(extension -> results.put(extension.getExportName(), extension.get().getFoo());
* }
* }
- * </pre>
+ * }</pre>
*
* <p>Example if return values and a single exception should be handled:
*
- * <pre>
+ * <pre>{@code
* Map<String, Object> results = new HashMap<>();
* try {
* for (PluginMapEntryContext<Foo> c : fooPluginMapContext) {
@@ -77,11 +77,11 @@
* } catch (MyException e) {
* // handle the exception
* }
- * </pre>
+ * }</pre>
*
* <p>Example if several exceptions should be handled:
*
- * <pre>
+ * <pre>{@code
* for (Extension<Foo> fooExtension : fooDynamicMap) {
* try (TraceContext traceContext = PluginContext.newTrace(fooExtension)) {
* fooExtension.get().doFoo();
@@ -89,7 +89,7 @@
* // handle the exception
* }
* }
- * </pre>
+ * }</pre>
*/
public class PluginMapContext<T> implements Iterable<PluginMapEntryContext<T>> {
private final DynamicMap<T> dynamicMap;
diff --git a/java/com/google/gerrit/server/plugincontext/PluginMapEntryContext.java b/java/com/google/gerrit/server/plugincontext/PluginMapEntryContext.java
index 68589cf..27181cb 100644
--- a/java/com/google/gerrit/server/plugincontext/PluginMapEntryContext.java
+++ b/java/com/google/gerrit/server/plugincontext/PluginMapEntryContext.java
@@ -35,15 +35,15 @@
*
* <p>The call* methods execute the extension and deliver a result back to the caller.
*
- * <pre>
+ * <pre>{@code
* Map<String, Object> results = new HashMap<>();
* fooPluginMapEntryContext.run(
* extension -> results.put(extension.getExportName(), extension.get().getFoo());
- * </pre>
+ * }</pre>
*
* <p>Example if all exceptions, but one, should be caught and logged:
*
- * <pre>
+ * <pre>{@code
* Map<String, Object> results = new HashMap<>();
* try {
* fooPluginMapEntryContext.run(
@@ -52,28 +52,28 @@
* } catch (MyException e) {
* // handle the exception
* }
- * </pre>
+ * }</pre>
*
* <p>Example if return values should be handled:
*
- * <pre>
+ * <pre>{@code
* Object result = fooPluginMapEntryContext.call(extension -> extension.get().getFoo());
- * </pre>
+ * }</pre>
*
* <p>Example if return values and a single exception should be handled:
*
- * <pre>
+ * <pre>{@code
* Object result;
* try {
* result = fooPluginMapEntryContext.call(extension -> extension.get().getFoo(), MyException.class);
* } catch (MyException e) {
* // handle the exception
* }
- * </pre>
+ * }</pre>
*
* <p>Example if several exceptions should be handled:
*
- * <pre>
+ * <pre>{@code
* for (Extension<Foo> fooExtension : fooDynamicMap) {
* try (TraceContext traceContext = PluginContext.newTrace(fooExtension)) {
* fooExtension.get().doFoo();
@@ -81,7 +81,7 @@
* // handle the exception
* }
* }
- * </pre>
+ * }</pre>
*/
public class PluginMapEntryContext<T> {
private final Extension<T> extension;
diff --git a/java/com/google/gerrit/server/plugincontext/PluginSetContext.java b/java/com/google/gerrit/server/plugincontext/PluginSetContext.java
index b64cfeb..43c9552 100644
--- a/java/com/google/gerrit/server/plugincontext/PluginSetContext.java
+++ b/java/com/google/gerrit/server/plugincontext/PluginSetContext.java
@@ -34,33 +34,33 @@
*
* <p>Example if all exceptions should be caught and logged:
*
- * <pre>
+ * <pre>{@code
* fooPluginSetContext.runEach(foo -> foo.doFoo());
- * </pre>
+ * }</pre>
*
* <p>Example if all exceptions, but one, should be caught and logged:
*
- * <pre>
+ * <pre>{@code
* try {
* fooPluginSetContext.runEach(foo -> foo.doFoo(), MyException.class);
* } catch (MyException e) {
* // handle the exception
* }
- * </pre>
+ * }</pre>
*
* <p>Example if return values should be handled:
*
- * <pre>
+ * <pre>{@code
* for (PluginSetEntryContext<Foo> c : fooPluginSetContext) {
* if (c.call(foo -> foo.handles(x))) {
* c.run(foo -> foo.doFoo());
* }
* }
- * </pre>
+ * }</pre>
*
* <p>Example if return values and a single exception should be handled:
*
- * <pre>
+ * <pre>{@code
* try {
* for (PluginSetEntryContext<Foo> c : fooPluginSetContext) {
* if (c.call(foo -> foo.handles(x), MyException.class)) {
@@ -70,11 +70,11 @@
* } catch (MyException e) {
* // handle the exception
* }
- * </pre>
+ * }</pre>
*
* <p>Example if several exceptions should be handled:
*
- * <pre>
+ * <pre>{@code
* for (Extension<Foo> fooExtension : fooDynamicSet.entries()) {
* try (TraceContext traceContext = PluginContext.newTrace(fooExtension)) {
* fooExtension.get().doFoo();
@@ -82,7 +82,7 @@
* // handle the exception
* }
* }
- * </pre>
+ * }</pre>
*/
public class PluginSetContext<T> implements Iterable<PluginSetEntryContext<T>> {
private final DynamicSet<T> dynamicSet;
diff --git a/java/com/google/gerrit/server/plugincontext/PluginSetEntryContext.java b/java/com/google/gerrit/server/plugincontext/PluginSetEntryContext.java
index 2268c07..be97b52 100644
--- a/java/com/google/gerrit/server/plugincontext/PluginSetEntryContext.java
+++ b/java/com/google/gerrit/server/plugincontext/PluginSetEntryContext.java
@@ -37,40 +37,40 @@
*
* <p>Example if all exceptions should be caught and logged:
*
- * <pre>
+ * <pre>{@code
* fooPluginSetEntryContext.run(foo -> foo.doFoo());
- * </pre>
+ * }</pre>
*
* <p>Example if all exceptions, but one, should be caught and logged:
*
- * <pre>
+ * <pre>{@code
* try {
* fooPluginSetEntryContext.run(foo -> foo.doFoo(), MyException.class);
* } catch (MyException e) {
* // handle the exception
* }
- * </pre>
+ * }</pre>
*
* <p>Example if return values should be handled:
*
- * <pre>
+ * <pre>{@code
* Object result = fooPluginSetEntryContext.call(foo -> foo.getFoo());
- * </pre>
+ * }</pre>
*
* <p>Example if return values and a single exception should be handled:
*
- * <pre>
+ * <pre>{@code
* Object result;
* try {
* result = fooPluginSetEntryContext.call(foo -> foo.getFoo(), MyException.class);
* } catch (MyException e) {
* // handle the exception
* }
- * </pre>
+ * }</pre>
*
* <p>Example if several exceptions should be handled:
*
- * <pre>
+ * <pre>{@code
* for (Extension<Foo> fooExtension : fooDynamicSet.entries()) {
* try (TraceContext traceContext = PluginContext.newTrace(fooExtension)) {
* fooExtension.get().doFoo();
@@ -78,7 +78,7 @@
* // handle the exception
* }
* }
- * </pre>
+ * }</pre>
*/
public class PluginSetEntryContext<T> {
private final Extension<T> extension;
diff --git a/java/com/google/gerrit/server/project/ProjectCache.java b/java/com/google/gerrit/server/project/ProjectCache.java
index cd41ce5..fee7105 100644
--- a/java/com/google/gerrit/server/project/ProjectCache.java
+++ b/java/com/google/gerrit/server/project/ProjectCache.java
@@ -42,10 +42,10 @@
return () -> new NoSuchProjectException(nameKey);
}
- /** @return the parent state for all projects on this server. */
+ /** Returns the parent state for all projects on this server. */
ProjectState getAllProjects();
- /** @return the project state of the project storing meta data for all users. */
+ /** Returns the project state of the project storing meta data for all users. */
ProjectState getAllUsers();
/**
@@ -84,12 +84,12 @@
*/
void remove(Project.NameKey name);
- /** @return sorted iteration of projects. */
+ /** Returns sorted iteration of projects. */
ImmutableSortedSet<Project.NameKey> all();
/**
- * @return estimated set of relevant groups extracted from hot project access rules. If the cache
- * is cold or too small for the entire project set of the server, this set may be incomplete.
+ * Returns estimated set of relevant groups extracted from hot project access rules. If the cache
+ * is cold or too small for the entire project set of the server, this set may be incomplete.
*/
Set<AccountGroup.UUID> guessRelevantGroupUUIDs();
diff --git a/java/com/google/gerrit/server/project/ProjectConfig.java b/java/com/google/gerrit/server/project/ProjectConfig.java
index a23bb39..513aeed 100644
--- a/java/com/google/gerrit/server/project/ProjectConfig.java
+++ b/java/com/google/gerrit/server/project/ProjectConfig.java
@@ -560,32 +560,32 @@
groupList.renameGroup(uuid, newName);
}
- /** @return the group reference, if the group is used by at least one rule. */
+ /** Returns the group reference, if the group is used by at least one rule. */
public GroupReference getGroup(AccountGroup.UUID uuid) {
return groupList.byUUID(uuid);
}
/**
- * @return the group reference corresponding to the specified group name if the group is used by
- * at least one rule or plugin value.
+ * Returns the group reference corresponding to the specified group name if the group is used by
+ * at least one rule or plugin value.
*/
public GroupReference getGroup(String groupName) {
return groupList.byName(groupName);
}
/**
- * @return the project's rules.pl ObjectId, if present in the branch. Null if it doesn't exist.
+ * Returns the project's rules.pl ObjectId, if present in the branch. Null if it doesn't exist.
*/
public ObjectId getRulesId() {
return rulesId;
}
- /** @return the maxObjectSizeLimit configured on this project, or zero if not configured. */
+ /** Returns the maxObjectSizeLimit configured on this project, or zero if not configured. */
public long getMaxObjectSizeLimit() {
return maxObjectSizeLimit;
}
- /** @return the checkReceivedObjects for this project, default is true. */
+ /** Returns the checkReceivedObjects for this project, default is true. */
public boolean getCheckReceivedObjects() {
return checkReceivedObjects;
}
diff --git a/java/com/google/gerrit/server/project/ProjectState.java b/java/com/google/gerrit/server/project/ProjectState.java
index 4569027..69e6036 100644
--- a/java/com/google/gerrit/server/project/ProjectState.java
+++ b/java/com/google/gerrit/server/project/ProjectState.java
@@ -138,8 +138,8 @@
}
/**
- * @return cached computation of all global capabilities. This should only be invoked on the state
- * from {@link ProjectCache#getAllProjects()}. Null on any other project.
+ * Returns cached computation of all global capabilities. This should only be invoked on the state
+ * from {@link ProjectCache#getAllProjects()}. Null on any other project.
*/
public CapabilityCollection getCapabilityCollection() {
return capabilities;
@@ -316,9 +316,9 @@
}
/**
- * @return all {@link AccountGroup}'s to which the owner privilege for 'refs/*' is assigned for
- * this project (the local owners), if there are no local owners the local owners of the
- * nearest parent project that has local owners are returned
+ * Returns all {@link AccountGroup}'s to which the owner privilege for 'refs/*' is assigned for
+ * this project (the local owners), if there are no local owners the local owners of the nearest
+ * parent project that has local owners are returned
*/
public Set<AccountGroup.UUID> getOwners() {
for (ProjectState p : tree()) {
@@ -330,10 +330,10 @@
}
/**
- * @return all {@link AccountGroup}'s that are allowed to administrate the complete project. This
- * includes all groups to which the owner privilege for 'refs/*' is assigned for this project
- * (the local owners) and all groups to which the owner privilege for 'refs/*' is assigned for
- * one of the parent projects (the inherited owners).
+ * Returns all {@link AccountGroup}'s that are allowed to administrate the complete project. This
+ * includes all groups to which the owner privilege for 'refs/*' is assigned for this project (the
+ * local owners) and all groups to which the owner privilege for 'refs/*' is assigned for one of
+ * the parent projects (the inherited owners).
*/
public Set<AccountGroup.UUID> getAllOwners() {
Set<AccountGroup.UUID> result = new HashSet<>();
@@ -346,16 +346,16 @@
}
/**
- * @return an iterable that walks through this project and then the parents of this project.
- * Starts from this project and progresses up the hierarchy to All-Projects.
+ * Returns an iterable that walks through this project and then the parents of this project.
+ * Starts from this project and progresses up the hierarchy to All-Projects.
*/
public Iterable<ProjectState> tree() {
return () -> new ProjectHierarchyIterator(projectCache, allProjectsName, ProjectState.this);
}
/**
- * @return an iterable that walks in-order from All-Projects through the project hierarchy to this
- * project.
+ * Returns an iterable that walks in-order from All-Projects through the project hierarchy to this
+ * project.
*/
public Iterable<ProjectState> treeInOrder() {
List<ProjectState> projects = Lists.newArrayList(tree());
@@ -364,8 +364,8 @@
}
/**
- * @return an iterable that walks through the parents of this project. Starts from the immediate
- * parent of this project and progresses up the hierarchy to All-Projects.
+ * Returns an iterable that walks through the parents of this project. Starts from the immediate
+ * parent of this project and progresses up the hierarchy to All-Projects.
*/
public FluentIterable<ProjectState> parents() {
return FluentIterable.from(tree()).skip(1);
diff --git a/java/com/google/gerrit/server/project/Reachable.java b/java/com/google/gerrit/server/project/Reachable.java
index 2adebe7..342c2bc 100644
--- a/java/com/google/gerrit/server/project/Reachable.java
+++ b/java/com/google/gerrit/server/project/Reachable.java
@@ -55,9 +55,9 @@
}
/**
- * @return true if a commit is reachable from a given set of refs. This method enforces
- * permissions on the given set of refs and performs a reachability check. Tags are not
- * filtered separately and will only be returned if reachable by a provided ref.
+ * Returns true if a commit is reachable from a given set of refs. This method enforces
+ * permissions on the given set of refs and performs a reachability check. Tags are not filtered
+ * separately and will only be returned if reachable by a provided ref.
*/
public boolean fromRefs(
Project.NameKey project, Repository repo, RevCommit commit, List<Ref> refs) {
diff --git a/java/com/google/gerrit/server/project/RefResource.java b/java/com/google/gerrit/server/project/RefResource.java
index ac2735d..fcf6048 100644
--- a/java/com/google/gerrit/server/project/RefResource.java
+++ b/java/com/google/gerrit/server/project/RefResource.java
@@ -22,9 +22,9 @@
super(projectState, user);
}
- /** @return the ref's name */
+ /** Returns the ref's name */
public abstract String getRef();
- /** @return the ref's revision */
+ /** Returns the ref's revision */
public abstract String getRevision();
}
diff --git a/java/com/google/gerrit/server/project/RemoveReviewerControl.java b/java/com/google/gerrit/server/project/RemoveReviewerControl.java
index 652c49f..0336e8e 100644
--- a/java/com/google/gerrit/server/project/RemoveReviewerControl.java
+++ b/java/com/google/gerrit/server/project/RemoveReviewerControl.java
@@ -62,7 +62,7 @@
checkRemoveReviewer(notes, currentUser, reviewer, 0);
}
- /** @return true if the user is allowed to remove this reviewer. */
+ /** Returns true if the user is allowed to remove this reviewer. */
public boolean testRemoveReviewer(
ChangeData cd, CurrentUser currentUser, Account.Id reviewer, int value)
throws PermissionBackendException {
diff --git a/java/com/google/gerrit/server/project/SubmitRequirementsAdapter.java b/java/com/google/gerrit/server/project/SubmitRequirementsAdapter.java
index ca6c689..f028def 100644
--- a/java/com/google/gerrit/server/project/SubmitRequirementsAdapter.java
+++ b/java/com/google/gerrit/server/project/SubmitRequirementsAdapter.java
@@ -16,6 +16,7 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.MoreCollectors;
+import com.google.common.flogger.FluentLogger;
import com.google.gerrit.entities.LabelType;
import com.google.gerrit.entities.SubmitRecord;
import com.google.gerrit.entities.SubmitRecord.Label;
@@ -33,14 +34,20 @@
* com.google.gerrit.entities.SubmitRequirementResult}s.
*/
public class SubmitRequirementsAdapter {
+ private static final FluentLogger logger = FluentLogger.forEnclosingClass();
+
private SubmitRequirementsAdapter() {}
public static List<SubmitRequirementResult> createResult(
SubmitRecord record, List<LabelType> labelTypes, ObjectId psCommitId) {
+ List<SubmitRequirementResult> results;
if (record.ruleName.equals("gerrit~DefaultSubmitRule")) {
- return createFromDefaultSubmitRecord(record.labels, labelTypes, psCommitId);
+ results = createFromDefaultSubmitRecord(record.labels, labelTypes, psCommitId);
+ } else {
+ results = createFromCustomSubmitRecord(record, psCommitId);
}
- return createFromCustomSubmitRecord(record, psCommitId);
+ logger.atFine().log("Converted submit record %s to submit requirements %s", record, results);
+ return results;
}
private static List<SubmitRequirementResult> createFromDefaultSubmitRecord(
@@ -107,7 +114,7 @@
.submittabilityExpressionResult(
createExpressionResult(
sr.submittabilityExpression(),
- mapStatus(record),
+ mapStatus(label),
ImmutableList.of(expressionString)))
.patchSetCommitId(psCommitId)
.build());
diff --git a/java/com/google/gerrit/server/project/SubmitRuleEvaluator.java b/java/com/google/gerrit/server/project/SubmitRuleEvaluator.java
index eaf409b..6c5559c 100644
--- a/java/com/google/gerrit/server/project/SubmitRuleEvaluator.java
+++ b/java/com/google/gerrit/server/project/SubmitRuleEvaluator.java
@@ -164,7 +164,6 @@
* Evaluate the submit type rules to get the submit type.
*
* @return record from the evaluated rules.
- * @param cd
*/
public SubmitTypeRecord getSubmitType(ChangeData cd) {
try (Timer0.Context ignored = submitTypeEvaluationLatency.start()) {
diff --git a/java/com/google/gerrit/server/query/change/ChangeData.java b/java/com/google/gerrit/server/query/change/ChangeData.java
index 5b83dd5..6c74301 100644
--- a/java/com/google/gerrit/server/query/change/ChangeData.java
+++ b/java/com/google/gerrit/server/query/change/ChangeData.java
@@ -728,7 +728,7 @@
this.attentionSet = attentionSet;
}
- /** @return patches for the change, in patch set ID order. */
+ /** Returns patches for the change, in patch set ID order. */
public Collection<PatchSet> patchSets() {
if (patchSets == null) {
patchSets = psUtil.byChange(notes());
@@ -741,7 +741,7 @@
this.patchSets = patchSets;
}
- /** @return patch with the given ID, or null if it does not exist. */
+ /** Returns patch with the given ID, or null if it does not exist. */
public PatchSet patchSet(PatchSet.Id psId) {
if (currentPatchSet != null && currentPatchSet.id().equals(psId)) {
return currentPatchSet;
@@ -755,8 +755,8 @@
}
/**
- * @return all patch set approvals for the change, keyed by ID, ordered by timestamp within each
- * patch set.
+ * Returns all patch set approvals for the change, keyed by ID, ordered by timestamp within each
+ * patch set.
*/
public ListMultimap<PatchSet.Id, PatchSetApproval> approvals() {
if (allApprovals == null) {
@@ -1199,8 +1199,8 @@
}
/**
- * @return {@code null} if {@code revertOf} is {@code null}; true if the change is a pure revert;
- * false otherwise.
+ * Returns {@code null} if {@code revertOf} is {@code null}; true if the change is a pure revert;
+ * false otherwise.
*/
@Nullable
public Boolean isPureRevert() {
diff --git a/java/com/google/gerrit/server/query/change/ChangeDataSource.java b/java/com/google/gerrit/server/query/change/ChangeDataSource.java
index 34579a9..26ce46c 100644
--- a/java/com/google/gerrit/server/query/change/ChangeDataSource.java
+++ b/java/com/google/gerrit/server/query/change/ChangeDataSource.java
@@ -17,6 +17,6 @@
import com.google.gerrit.index.query.DataSource;
public interface ChangeDataSource extends DataSource<ChangeData> {
- /** @return true if all returned ChangeData.hasChange() will be true. */
+ /** Returns true if all returned ChangeData.hasChange() will be true. */
boolean hasChange();
}
diff --git a/java/com/google/gerrit/server/query/change/PredicateArgs.java b/java/com/google/gerrit/server/query/change/PredicateArgs.java
index ad7917e..d82b9bc 100644
--- a/java/com/google/gerrit/server/query/change/PredicateArgs.java
+++ b/java/com/google/gerrit/server/query/change/PredicateArgs.java
@@ -40,7 +40,6 @@
* name]}.
*
* @param args arguments to be parsed
- * @throws QueryParseException
*/
PredicateArgs(String args) throws QueryParseException {
positional = new ArrayList<>();
diff --git a/java/com/google/gerrit/server/restapi/project/CommitsCollection.java b/java/com/google/gerrit/server/restapi/project/CommitsCollection.java
index ae7f540..09951b2 100644
--- a/java/com/google/gerrit/server/restapi/project/CommitsCollection.java
+++ b/java/com/google/gerrit/server/restapi/project/CommitsCollection.java
@@ -116,14 +116,14 @@
}
/**
- * @return true if {@code commit} is visible to the caller and {@code commit} is reachable from
- * the given branch.
+ * Returns true if {@code commit} is visible to the caller and {@code commit} is reachable from
+ * the given branch.
*/
public boolean canRead(ProjectState state, Repository repo, RevCommit commit, Ref ref) {
return reachable.fromRefs(state.getNameKey(), repo, commit, ImmutableList.of(ref));
}
- /** @return true if {@code commit} is visible to the caller. */
+ /** Returns true if {@code commit} is visible to the caller. */
public boolean canRead(ProjectState state, Repository repo, RevCommit commit) throws IOException {
Project.NameKey project = state.getNameKey();
if (indexes.getSearchIndex() == null) {
diff --git a/java/com/google/gerrit/server/restapi/project/DeleteRef.java b/java/com/google/gerrit/server/restapi/project/DeleteRef.java
index 4e13ba9..60405a6 100644
--- a/java/com/google/gerrit/server/restapi/project/DeleteRef.java
+++ b/java/com/google/gerrit/server/restapi/project/DeleteRef.java
@@ -86,8 +86,6 @@
*
* @param projectState the {@code ProjectState} of the project containing the target ref.
* @param ref the ref to be deleted.
- * @throws IOException
- * @throws ResourceConflictException
*/
public void deleteSingleRef(ProjectState projectState, String ref)
throws IOException, ResourceConflictException, AuthException, PermissionBackendException {
@@ -100,8 +98,6 @@
* @param projectState the {@code ProjectState} of the project containing the target ref.
* @param ref the ref to be deleted.
* @param prefix the prefix of the ref.
- * @throws IOException
- * @throws ResourceConflictException
*/
public void deleteSingleRef(ProjectState projectState, String ref, @Nullable String prefix)
throws IOException, ResourceConflictException, AuthException, PermissionBackendException {
@@ -161,9 +157,6 @@
* @param projectState the {@code ProjectState} of the project whose refs are to be deleted.
* @param refsToDelete the refs to be deleted.
* @param prefix the prefix to add to abbreviated refs, eg. "refs/heads/".
- * @throws IOException
- * @throws ResourceConflictException
- * @throws PermissionBackendException
*/
public void deleteMultipleRefs(
ProjectState projectState, ImmutableSet<String> refsToDelete, String prefix)
diff --git a/java/com/google/gerrit/server/restapi/project/ProjectsCollection.java b/java/com/google/gerrit/server/restapi/project/ProjectsCollection.java
index efc739c..6174798 100644
--- a/java/com/google/gerrit/server/restapi/project/ProjectsCollection.java
+++ b/java/com/google/gerrit/server/restapi/project/ProjectsCollection.java
@@ -105,7 +105,6 @@
* @throws RestApiException thrown if the project ID cannot be resolved or if the project is not
* visible to the calling user
* @throws IOException thrown when there is an error.
- * @throws PermissionBackendException
*/
public ProjectResource parse(String id)
throws RestApiException, IOException, PermissionBackendException {
@@ -121,7 +120,6 @@
* @throws RestApiException thrown if the project ID cannot be resolved or if the project is not
* visible to the calling user and checkVisibility is true.
* @throws IOException thrown when there is an error.
- * @throws PermissionBackendException
*/
public ProjectResource parse(String id, boolean checkAccess)
throws RestApiException, IOException, PermissionBackendException {
diff --git a/java/com/google/gerrit/server/securestore/SecureStore.java b/java/com/google/gerrit/server/securestore/SecureStore.java
index b5aebee..b53e38c 100644
--- a/java/com/google/gerrit/server/securestore/SecureStore.java
+++ b/java/com/google/gerrit/server/securestore/SecureStore.java
@@ -39,13 +39,7 @@
public final String section;
public final String subsection;
- /**
- * Creates EntryKey.
- *
- * @param section
- * @param subsection
- * @param name
- */
+ /** Creates EntryKey */
public EntryKey(String section, String subsection, String name) {
this.name = name;
this.section = section;
@@ -57,9 +51,6 @@
* Extract decrypted value of stored property from SecureStore or {@code null} when property was
* not found.
*
- * @param section
- * @param subsection
- * @param name
* @return decrypted String value or {@code null} if not found
*/
public final String get(String section, String subsection, String name) {
@@ -74,10 +65,6 @@
* Extract decrypted value of stored plugin config property from SecureStore or {@code null} when
* property was not found.
*
- * @param pluginName
- * @param section
- * @param subsection
- * @param name
* @return decrypted String value or {@code null} if not found
*/
public final String getForPlugin(
@@ -93,10 +80,6 @@
* Extract list of plugin config values from SecureStore and decrypt every value in that list, or
* {@code null} when property was not found.
*
- * @param pluginName
- * @param section
- * @param subsection
- * @param name
* @return decrypted list of string values or {@code null}
*/
public abstract String[] getListForPlugin(
@@ -106,9 +89,6 @@
* Extract list of values from SecureStore and decrypt every value in that list or {@code null}
* when property was not found.
*
- * @param section
- * @param subsection
- * @param name
* @return decrypted list of string values or {@code null}
*/
public abstract String[] getList(String section, String subsection, String name);
@@ -118,9 +98,6 @@
*
* <p>This method is responsible for encrypting value and storing it.
*
- * @param section
- * @param subsection
- * @param name
* @param value plain text value
*/
public final void set(String section, String subsection, String name, String value) {
@@ -132,26 +109,19 @@
*
* <p>This method is responsible for encrypting all values in the list and storing them.
*
- * @param section
- * @param subsection
- * @param name
* @param values list of plain text values
*/
public abstract void setList(String section, String subsection, String name, List<String> values);
/**
* Remove value for given {@code section}, {@code subsection} and {@code name} from SecureStore.
- *
- * @param section
- * @param subsection
- * @param name
*/
public abstract void unset(String section, String subsection, String name);
- /** @return list of stored entries. */
+ /** Returns list of stored entries. */
public abstract Iterable<EntryKey> list();
- /** @return <code>true</code> if currently loaded values are outdated */
+ /** Returns <code>true</code> if currently loaded values are outdated */
public abstract boolean isOutdated();
/** Reload the values */
diff --git a/java/com/google/gerrit/server/submit/SubmitStrategyOp.java b/java/com/google/gerrit/server/submit/SubmitStrategyOp.java
index f181c36..7d428eb 100644
--- a/java/com/google/gerrit/server/submit/SubmitStrategyOp.java
+++ b/java/com/google/gerrit/server/submit/SubmitStrategyOp.java
@@ -521,32 +521,22 @@
}
}
- /**
- * @see #updateRepo(RepoContext)
- * @param ctx
- */
+ /** See {@link #updateRepo(RepoContext)} */
protected void updateRepoImpl(RepoContext ctx) throws Exception {}
/**
- * @see #updateChange(ChangeContext)
- * @param ctx
- * @return a new patch set if one was created by the submit strategy, or null if not.
+ * Returns a new patch set if one was created by the submit strategy, or null if not
+ *
+ * <p>See {@link #updateChange(ChangeContext)}
*/
protected PatchSet updateChangeImpl(ChangeContext ctx) throws Exception {
return null;
}
- /**
- * @see #postUpdate(PostUpdateContext)
- * @param ctx
- */
+ /** See {@link #postUpdate(PostUpdateContext)} */
protected void postUpdateImpl(PostUpdateContext ctx) throws Exception {}
- /**
- * Amend the commit with gitlink update
- *
- * @param commit
- */
+ /** Amend the commit with gitlink update */
protected CodeReviewCommit amendGitlink(CodeReviewCommit commit)
throws IntegrationConflictException {
if (!args.subscriptionGraph.hasSubscription(args.destBranch)) {
diff --git a/java/com/google/gerrit/server/tools/ToolsCatalog.java b/java/com/google/gerrit/server/tools/ToolsCatalog.java
index aaa366c..9c1483f 100644
--- a/java/com/google/gerrit/server/tools/ToolsCatalog.java
+++ b/java/com/google/gerrit/server/tools/ToolsCatalog.java
@@ -175,28 +175,28 @@
return type;
}
- /** @return the preferred UNIX file mode, e.g. {@code 0755}. */
+ /** Returns the preferred UNIX file mode, e.g. {@code 0755}. */
public int getMode() {
return mode;
}
- /** @return path of the entry, relative to the catalog root. */
+ /** Returns path of the entry, relative to the catalog root. */
public String getPath() {
return path;
}
- /** @return name of the entry, within its parent directory. */
+ /** Returns the name of the entry, within its parent directory. */
public String getName() {
final int s = path.lastIndexOf('/');
return s < 0 ? path : path.substring(s + 1);
}
- /** @return collection of entries below this one, if this is a directory. */
+ /** Returns collection of entries below this one, if this is a directory. */
public List<Entry> getChildren() {
return Collections.unmodifiableList(children);
}
- /** @return a copy of the file's contents. */
+ /** Returns a copy of the file's contents. */
public byte[] getBytes() {
byte[] data = read(getPath());
diff --git a/java/com/google/gerrit/server/update/ChainedReceiveCommands.java b/java/com/google/gerrit/server/update/ChainedReceiveCommands.java
index c223aec..99c72f2 100644
--- a/java/com/google/gerrit/server/update/ChainedReceiveCommands.java
+++ b/java/com/google/gerrit/server/update/ChainedReceiveCommands.java
@@ -118,7 +118,7 @@
}
}
- /** @return an unmodifiable view of commands. */
+ /** Returns an unmodifiable view of commands. */
public Map<String, ReceiveCommand> getCommands() {
return Collections.unmodifiableMap(commands);
}
diff --git a/java/com/google/gerrit/server/update/ChangeContext.java b/java/com/google/gerrit/server/update/ChangeContext.java
index 5a53e2a..aeabde4 100644
--- a/java/com/google/gerrit/server/update/ChangeContext.java
+++ b/java/com/google/gerrit/server/update/ChangeContext.java
@@ -69,7 +69,7 @@
*/
void deleteChange();
- /** @return change corresponding to {@link #getNotes()}. */
+ /** Returns change corresponding to {@link #getNotes()}. */
default Change getChange() {
return requireNonNull(getNotes().getChange());
}
diff --git a/java/com/google/gerrit/server/update/RepoContext.java b/java/com/google/gerrit/server/update/RepoContext.java
index 9faf628..66831cd 100644
--- a/java/com/google/gerrit/server/update/RepoContext.java
+++ b/java/com/google/gerrit/server/update/RepoContext.java
@@ -22,9 +22,9 @@
/** Context for performing the {@link BatchUpdateOp#updateRepo} phase. */
public interface RepoContext extends Context {
/**
- * @return inserter for writing to the repo. Callers should not flush; the walk returned by {@link
- * #getRevWalk()} is able to read back objects inserted by this inserter without flushing
- * first.
+ * Returns inserter for writing to the repo. Callers should not flush; the walk returned by {@link
+ * #getRevWalk()} is able to read back objects inserted by this inserter without flushing first.
+ *
* @throws IOException if an error occurred opening the repo.
*/
ObjectInserter getInserter() throws IOException;
diff --git a/java/com/google/gerrit/server/util/RequestScopePropagator.java b/java/com/google/gerrit/server/util/RequestScopePropagator.java
index dc8a136..10c46fc 100644
--- a/java/com/google/gerrit/server/util/RequestScopePropagator.java
+++ b/java/com/google/gerrit/server/util/RequestScopePropagator.java
@@ -160,7 +160,11 @@
};
}
- /** @see #wrap(Callable) */
+ /**
+ * Ensures that the current request state is available when the passed in Callable is invoked
+ *
+ * <p>See {@link #wrap(Callable)}
+ */
protected abstract <T> Callable<T> wrapImpl(Callable<T> callable);
protected <T> Callable<T> context(RequestContext context, Callable<T> callable) {
diff --git a/java/com/google/gerrit/sshd/BaseCommand.java b/java/com/google/gerrit/sshd/BaseCommand.java
index 42aabfb..f1be04e 100644
--- a/java/com/google/gerrit/sshd/BaseCommand.java
+++ b/java/com/google/gerrit/sshd/BaseCommand.java
@@ -73,6 +73,7 @@
static final int STATUS_NOT_FOUND = PRIVATE_STATUS | 2;
public static final int STATUS_NOT_ADMIN = PRIVATE_STATUS | 3;
+ @SuppressWarnings("unused") // unused here, but triggers logic in EndOfOptionsHandler
@Option(name = "--", usage = "end of options", handler = EndOfOptionsHandler.class)
private boolean endOfOptions;
diff --git a/java/com/google/gerrit/sshd/SshLog.java b/java/com/google/gerrit/sshd/SshLog.java
index 616f7d1..7c96342 100644
--- a/java/com/google/gerrit/sshd/SshLog.java
+++ b/java/com/google/gerrit/sshd/SshLog.java
@@ -92,7 +92,7 @@
}
}
- /** @return true if a change in state has occurred */
+ /** Returns true if a change in state has occurred */
public boolean enableLogging() {
synchronized (lock) {
if (async == null) {
@@ -112,7 +112,7 @@
}
}
- /** @return true if a change in state has occurred */
+ /** Returns true if a change in state has occurred */
public boolean disableLogging() {
synchronized (lock) {
if (async != null) {
diff --git a/java/com/google/gerrit/sshd/SshSession.java b/java/com/google/gerrit/sshd/SshSession.java
index b39eaed..d545844 100644
--- a/java/com/google/gerrit/sshd/SshSession.java
+++ b/java/com/google/gerrit/sshd/SshSession.java
@@ -114,7 +114,7 @@
identity.setAccessPath(path);
}
- /** @return {@code true} if the authentication did not succeed. */
+ /** Returns {@code true} if the authentication did not succeed. */
boolean isAuthenticationError() {
return authError != null;
}
diff --git a/java/com/google/gerrit/testing/GerritJUnit.java b/java/com/google/gerrit/testing/GerritJUnit.java
index 0771c39..e80afa9 100644
--- a/java/com/google/gerrit/testing/GerritJUnit.java
+++ b/java/com/google/gerrit/testing/GerritJUnit.java
@@ -26,11 +26,11 @@
* <p>This construction is recommended by the Truth team for use in conjunction with asserting
* over a {@code ThrowableSubject} on the return type:
*
- * <pre>
- * MyException e = assertThrows(MyException.class, () -> doSomething(foo));
- * assertThat(e).isInstanceOf(MySubException.class);
- * assertThat(e).hasMessageThat().contains("sub-exception occurred");
- * </pre>
+ * <pre>{@code
+ * MyException e = assertThrows(MyException.class, () -> doSomething(foo));
+ * assertThat(e).isInstanceOf(MySubException.class);
+ * assertThat(e).hasMessageThat().contains("sub-exception occurred");
+ * }</pre>
*
* @param throwableClass expected exception type.
* @param runnable runnable containing arbitrary code.
diff --git a/java/com/google/gerrit/testing/GerritServerTests.java b/java/com/google/gerrit/testing/GerritServerTests.java
index 363a07d..752c13d 100644
--- a/java/com/google/gerrit/testing/GerritServerTests.java
+++ b/java/com/google/gerrit/testing/GerritServerTests.java
@@ -26,7 +26,6 @@
@RunWith(ConfigSuite.class)
public class GerritServerTests {
@ConfigSuite.Parameter public Config config;
- @ConfigSuite.Name private String configName;
@Rule
public TestRule testRunner =
diff --git a/java/com/google/gerrit/util/http/RequestUtil.java b/java/com/google/gerrit/util/http/RequestUtil.java
index 92d9967..f64ce5a 100644
--- a/java/com/google/gerrit/util/http/RequestUtil.java
+++ b/java/com/google/gerrit/util/http/RequestUtil.java
@@ -31,8 +31,8 @@
}
/**
- * @return the same value as {@link HttpServletRequest#getPathInfo()}, but without decoding
- * URL-encoded characters.
+ * Returns the same value as {@link HttpServletRequest#getPathInfo()}, but without decoding
+ * URL-encoded characters.
*/
public static String getEncodedPathInfo(HttpServletRequest req) {
// CS IGNORE LineLength FOR NEXT 3 LINES. REASON: URL.
diff --git a/javatests/com/google/gerrit/acceptance/api/change/ChangeIT.java b/javatests/com/google/gerrit/acceptance/api/change/ChangeIT.java
index ac67444..6166f36 100644
--- a/javatests/com/google/gerrit/acceptance/api/change/ChangeIT.java
+++ b/javatests/com/google/gerrit/acceptance/api/change/ChangeIT.java
@@ -4928,6 +4928,28 @@
}
@Test
+ @GerritConfig(name = "trackingid.jira-bug.footer", value = "Bug:")
+ @GerritConfig(name = "trackingid.jira-bug.match", value = "\\d+")
+ @GerritConfig(name = "trackingid.jira-bug.system", value = "JIRA")
+ public void multipleTrackingIdsInSingleFooter() throws Exception {
+ PushOneCommit push =
+ pushFactory.create(
+ admin.newIdent(),
+ testRepo,
+ PushOneCommit.SUBJECT + "\n\n" + "Bug: 123, 456",
+ PushOneCommit.FILE_NAME,
+ PushOneCommit.FILE_CONTENT);
+ PushOneCommit.Result result = push.to("refs/for/master");
+ result.assertOkStatus();
+
+ ChangeInfo change = gApi.changes().id(result.getChangeId()).get(TRACKING_IDS);
+ Collection<TrackingIdInfo> trackingIds = change.trackingIds;
+ assertThat(trackingIds).isNotNull();
+ assertThat(trackingIds).hasSize(2);
+ assertThat(trackingIds.stream().map(t -> t.id)).containsExactly("123", "456");
+ }
+
+ @Test
public void starUnstar() throws Exception {
ChangeIndexedCounter changeIndexedCounter = new ChangeIndexedCounter();
try (Registration registration =
diff --git a/javatests/com/google/gerrit/acceptance/api/project/ProjectIT.java b/javatests/com/google/gerrit/acceptance/api/project/ProjectIT.java
index dd70d4a..c42628c 100644
--- a/javatests/com/google/gerrit/acceptance/api/project/ProjectIT.java
+++ b/javatests/com/google/gerrit/acceptance/api/project/ProjectIT.java
@@ -842,7 +842,7 @@
String otherLink = "https://other.example.com";
input = new ConfigInput();
addCommentLink(input, BUGZILLA, BUGZILLA_MATCH, otherLink);
- info = setConfig(child, input);
+ setConfig(child, input);
expected = new HashMap<>();
expected.put(BUGZILLA, commentLinkInfo(BUGZILLA, BUGZILLA_MATCH, otherLink));
@@ -866,7 +866,7 @@
String otherLink = "https://other.example.com";
input = new ConfigInput();
addCommentLink(input, BUGZILLA, BUGZILLA_MATCH, otherLink);
- info = setConfig(project, input);
+ setConfig(project, input);
expected = new HashMap<>();
expected.put(BUGZILLA, commentLinkInfo(BUGZILLA, BUGZILLA_MATCH, otherLink));
@@ -888,7 +888,7 @@
input = new ConfigInput();
addCommentLink(input, BUGZILLA, null);
- info = setConfig(project, input);
+ setConfig(project, input);
expected = new HashMap<>();
expected.put(JIRA, commentLinkInfo(JIRA, JIRA_MATCH, JIRA_LINK));
diff --git a/javatests/com/google/gerrit/acceptance/git/RefAdvertisementIT.java b/javatests/com/google/gerrit/acceptance/git/RefAdvertisementIT.java
index 92770ba..194f5f9 100644
--- a/javatests/com/google/gerrit/acceptance/git/RefAdvertisementIT.java
+++ b/javatests/com/google/gerrit/acceptance/git/RefAdvertisementIT.java
@@ -1434,7 +1434,6 @@
* Assert that refs seen by a non-admin user match the expected refs.
*
* @param expectedRefs expected refs.
- * @throws Exception
*/
private void assertUploadPackRefs(String... expectedRefs) throws Exception {
assertRefs(project, user, true, expectedRefs);
diff --git a/javatests/com/google/gerrit/acceptance/rest/CancellationIT.java b/javatests/com/google/gerrit/acceptance/rest/CancellationIT.java
index c5ceea0..ed5e559 100644
--- a/javatests/com/google/gerrit/acceptance/rest/CancellationIT.java
+++ b/javatests/com/google/gerrit/acceptance/rest/CancellationIT.java
@@ -28,7 +28,6 @@
import com.google.gerrit.server.cancellation.RequestCancelledException;
import com.google.gerrit.server.cancellation.RequestStateProvider;
import com.google.gerrit.server.events.CommitReceivedEvent;
-import com.google.gerrit.server.experiments.ExperimentFeaturesConstants;
import com.google.gerrit.server.git.validators.CommitValidationException;
import com.google.gerrit.server.git.validators.CommitValidationListener;
import com.google.gerrit.server.git.validators.CommitValidationMessage;
@@ -582,9 +581,6 @@
@Test
@GerritConfig(name = "receive.timeout", value = "1ms")
- @GerritConfig(
- name = "experiments.enabled",
- value = ExperimentFeaturesConstants.GERRIT_BACKEND_REQUEST_FEATURE_ENABLE_PUSH_CANCELLATION)
public void abortPushIfTimeoutExceeded() throws Exception {
PushOneCommit push = pushFactory.create(admin.newIdent(), testRepo);
PushOneCommit.Result r = push.to("refs/for/master");
@@ -593,18 +589,7 @@
@Test
@GerritConfig(name = "receive.timeout", value = "1ms")
- public void pushNotAbortedIfTimeoutExceededAndExperimentNotEnabled() throws Exception {
- PushOneCommit push = pushFactory.create(admin.newIdent(), testRepo);
- PushOneCommit.Result r = push.to("refs/for/master");
- r.assertOkStatus();
- }
-
- @Test
- @GerritConfig(name = "receive.timeout", value = "1ms")
@GerritConfig(name = "deadline.default.timeout", value = "10s")
- @GerritConfig(
- name = "experiments.enabled",
- value = ExperimentFeaturesConstants.GERRIT_BACKEND_REQUEST_FEATURE_ENABLE_PUSH_CANCELLATION)
public void receiveTimeoutTakesPrecedence() throws Exception {
PushOneCommit push = pushFactory.create(admin.newIdent(), testRepo);
PushOneCommit.Result r = push.to("refs/for/master");
@@ -674,9 +659,6 @@
@Test
@GerritConfig(name = "receive.timeout", value = "1ms")
- @GerritConfig(
- name = "experiments.enabled",
- value = ExperimentFeaturesConstants.GERRIT_BACKEND_REQUEST_FEATURE_ENABLE_PUSH_CANCELLATION)
public void clientProvidedDeadlineOnPushDoesntOverrideServerTimeout() throws Exception {
List<String> pushOptions = new ArrayList<>();
pushOptions.add("deadline=10m");
diff --git a/javatests/com/google/gerrit/acceptance/rest/change/CreateChangeIT.java b/javatests/com/google/gerrit/acceptance/rest/change/CreateChangeIT.java
index 92a4028..b0a14cf 100644
--- a/javatests/com/google/gerrit/acceptance/rest/change/CreateChangeIT.java
+++ b/javatests/com/google/gerrit/acceptance/rest/change/CreateChangeIT.java
@@ -1181,7 +1181,6 @@
* @param branchB name of second branch to create
* @param fileB name of file to commit to branchB
* @return A {@code Map} of branchName => commit result.
- * @throws Exception
*/
private Map<String, Result> changeInTwoBranches(
String branchA, String fileA, String branchB, String fileB) throws Exception {
@@ -1201,7 +1200,6 @@
* @param fileB name of file to commit to branchB
* @param contentB file content to commit to branchB
* @return A {@code Map} of branchName => commit result.
- * @throws Exception
*/
private Map<String, Result> changeInTwoBranches(
String branchA,
diff --git a/javatests/com/google/gerrit/acceptance/rest/util/RestApiCallHelper.java b/javatests/com/google/gerrit/acceptance/rest/util/RestApiCallHelper.java
index f98fb45..55735fc 100644
--- a/javatests/com/google/gerrit/acceptance/rest/util/RestApiCallHelper.java
+++ b/javatests/com/google/gerrit/acceptance/rest/util/RestApiCallHelper.java
@@ -29,13 +29,13 @@
/** Helper to execute REST API calls using the HTTP client. */
@Ignore
public class RestApiCallHelper {
- /** @see #execute(RestSession, List, BeforeRestCall, String...) */
+ /** See {@link #execute(RestSession, List, BeforeRestCall, String...)} */
public static void execute(RestSession restSession, List<RestCall> restCalls, String... args)
throws Exception {
execute(restSession, restCalls, () -> {}, args);
}
- /** @see #execute(RestSession, List, BeforeRestCall, String...) */
+ /** See {@link #execute(RestSession, RestCall, String...)} */
public static void execute(
RestSession restSession,
List<RestCall> restCalls,
diff --git a/javatests/com/google/gerrit/acceptance/server/change/CommentsIT.java b/javatests/com/google/gerrit/acceptance/server/change/CommentsIT.java
index 89074b7..80cdad8 100644
--- a/javatests/com/google/gerrit/acceptance/server/change/CommentsIT.java
+++ b/javatests/com/google/gerrit/acceptance/server/change/CommentsIT.java
@@ -224,12 +224,14 @@
String ps1 = result.getCommit().name();
CommentInput comment =
- CommentsUtil.newCommentWithOnlyMandatoryFields(PATCHSET_LEVEL, "comment");
+ CommentsUtil.newCommentWithOnlyMandatoryFields(
+ PATCHSET_LEVEL, "The change looks good, LGTM");
CommentsUtil.addComments(gApi, changeId, ps1, comment);
String emailBody = Iterables.getOnlyElement(email.getMessages()).body();
assertThat(emailBody).contains("Patchset");
assertThat(emailBody).doesNotContain("/PATCHSET_LEVEL");
+ assertThat(emailBody).contains("The change looks good, LGTM");
}
@Test
diff --git a/javatests/com/google/gerrit/acceptance/ssh/AbstractIndexTests.java b/javatests/com/google/gerrit/acceptance/ssh/AbstractIndexTests.java
index f866fff..3b38bad 100644
--- a/javatests/com/google/gerrit/acceptance/ssh/AbstractIndexTests.java
+++ b/javatests/com/google/gerrit/acceptance/ssh/AbstractIndexTests.java
@@ -38,7 +38,6 @@
public abstract class AbstractIndexTests extends AbstractDaemonTest {
@Inject private ExtensionRegistry extensionRegistry;
- /** @param injector injector */
public void configureIndex(Injector injector) {}
@Test
diff --git a/javatests/com/google/gerrit/mail/HtmlParserTest.java b/javatests/com/google/gerrit/mail/HtmlParserTest.java
index a7ff172..bb60fd8 100644
--- a/javatests/com/google/gerrit/mail/HtmlParserTest.java
+++ b/javatests/com/google/gerrit/mail/HtmlParserTest.java
@@ -176,7 +176,6 @@
/**
* Create an html message body with the specified comments.
*
- * @param changeMessage
* @param c1 Comment in reply to first comment.
* @param c2 Comment in reply to second comment.
* @param c3 Comment in reply to third comment.
diff --git a/javatests/com/google/gerrit/mail/TextParserTest.java b/javatests/com/google/gerrit/mail/TextParserTest.java
index caed5f8..d3e7447 100644
--- a/javatests/com/google/gerrit/mail/TextParserTest.java
+++ b/javatests/com/google/gerrit/mail/TextParserTest.java
@@ -181,7 +181,6 @@
/**
* Create a plaintext message body with the specified comments.
*
- * @param changeMessage
* @param c1 Comment in reply to first inline comment.
* @param c2 Comment in reply to second inline comment.
* @param c3 Comment in reply to third inline comment.
diff --git a/javatests/com/google/gerrit/server/permissions/SectionSortCacheTest.java b/javatests/com/google/gerrit/server/permissions/SectionSortCacheTest.java
index 9ec1625..0ba3b56 100644
--- a/javatests/com/google/gerrit/server/permissions/SectionSortCacheTest.java
+++ b/javatests/com/google/gerrit/server/permissions/SectionSortCacheTest.java
@@ -78,7 +78,7 @@
// Cache preserves relative order (reference equality) for identical elements
AccessSection[] expected = {sectionBClone, sectionB, sectionA, sectionAClone, sectionA};
for (int i = 0; i < sorted.size(); i++) {
- assert (sorted.get(i) == expected[i]);
+ assertThat(sorted.get(i)).isSameInstanceAs(expected[i]);
}
}
}
diff --git a/javatests/com/google/gerrit/server/project/SubmitRequirementsAdapterTest.java b/javatests/com/google/gerrit/server/project/SubmitRequirementsAdapterTest.java
index f6c4d6a..05eb6e0 100644
--- a/javatests/com/google/gerrit/server/project/SubmitRequirementsAdapterTest.java
+++ b/javatests/com/google/gerrit/server/project/SubmitRequirementsAdapterTest.java
@@ -258,6 +258,34 @@
SubmitRequirementExpressionResult.Status.FAIL);
}
+ @Test
+ public void customSubmitRule_withMixOfPassingAndFailingLabels() {
+ SubmitRecord submitRecord =
+ createSubmitRecord(
+ "gerrit~PrologRule",
+ Status.NOT_READY,
+ Arrays.asList(
+ createLabel("custom-label-1", Label.Status.OK),
+ createLabel("custom-label-2", Label.Status.REJECT)));
+
+ List<SubmitRequirementResult> requirements =
+ SubmitRequirementsAdapter.createResult(submitRecord, labelTypes, psCommitId);
+
+ assertThat(requirements).hasSize(2);
+ assertResult(
+ requirements.get(0),
+ /* reqName= */ "custom-label-1",
+ /* submitExpression= */ "label:custom-label-1=gerrit~PrologRule",
+ SubmitRequirementResult.Status.SATISFIED,
+ SubmitRequirementExpressionResult.Status.PASS);
+ assertResult(
+ requirements.get(1),
+ /* reqName= */ "custom-label-2",
+ /* submitExpression= */ "label:custom-label-2=gerrit~PrologRule",
+ SubmitRequirementResult.Status.UNSATISFIED,
+ SubmitRequirementExpressionResult.Status.FAIL);
+ }
+
private void assertResult(
SubmitRequirementResult r,
String reqName,
diff --git a/package.json b/package.json
index c3dfad0..e1bbf7c 100644
--- a/package.json
+++ b/package.json
@@ -6,7 +6,7 @@
"@bazel/rollup": "^3.5.0",
"@bazel/terser": "^3.5.0",
"@bazel/typescript": "^3.5.0",
- "twinkie": "^1.1.2"
+ "twinkie": "^1.1.3"
},
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^4.29.0",
@@ -17,6 +17,7 @@
"eslint-plugin-jsdoc": "^32.3.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^3.4.0",
+ "eslint-plugin-regex": "^1.8.0",
"gts": "^3.1.0",
"prettier": "2.3.1",
"rollup": "^2.45.2",
@@ -32,19 +33,18 @@
"safe_bazelisk": "if which bazelisk >/dev/null; then bazel_bin=bazelisk; else bazel_bin=bazel; fi && $bazel_bin",
"eslint": "npm run safe_bazelisk test polygerrit-ui/app:lint_test",
"eslintfix": "npm run safe_bazelisk run polygerrit-ui/app:lint_bin -- -- --fix $(pwd)/polygerrit-ui/app",
- "polylint": "npm run safe_bazelisk test polygerrit-ui/app:polylint_test",
"test:debug": "npm run compile:local && npm run safe_bazelisk run //polygerrit-ui:karma_bin -- -- start $(pwd)/polygerrit-ui/karma.conf.js --root '.ts-out/polygerrit-ui/app/' --browsers ChromeDev --no-single-run --test-files",
"test:single": "npm run compile:local && npm run safe_bazelisk run //polygerrit-ui:karma_bin -- -- start $(pwd)/polygerrit-ui/karma.conf.js --root '.ts-out/polygerrit-ui/app/' --test-files",
- "postinstall": "(git apply --reverse --ignore-whitespace twinkie.patch || true) && git apply --ignore-whitespace twinkie.patch",
- "polytest": "npm run safe_bazelisk test //polygerrit-ui/app:validate_polymer_templates",
- "polytest:dev": "rm -rf ./polygerrit-ui/app/tmpl_out && npm run safe_bazelisk build //polygerrit-ui/app:template_test_tar && mkdir ./polygerrit-ui/app/tmpl_out && tar -xf bazel-bin/polygerrit-ui/app/template_test_tar.tar -C ./polygerrit-ui/app/tmpl_out"
+ "polylint": "npm run safe_bazelisk test //polygerrit-ui/app:polylint_test",
+ "polylint:dev": "rm -rf ./polygerrit-ui/app/tmpl_out && npm run safe_bazelisk build //polygerrit-ui/app:template_test_tar && mkdir ./polygerrit-ui/app/tmpl_out && tar -xf bazel-bin/polygerrit-ui/app/template_test_tar.tar -C ./polygerrit-ui/app/tmpl_out"
},
"repository": {
"type": "git",
"url": "https://gerrit.googlesource.com/gerrit"
},
"resolutions": {
- "lodash": "4.17.21"
+ "lodash": "4.17.21",
+ "twinkie/typescript": "4.3.2"
},
"author": "",
"license": "Apache-2.0"
diff --git a/plugins/delete-project b/plugins/delete-project
index 0b5bcbf..3481845 160000
--- a/plugins/delete-project
+++ b/plugins/delete-project
@@ -1 +1 @@
-Subproject commit 0b5bcbfc26d9c0559312ced40bb36a37f517b793
+Subproject commit 3481845462f86959ff4ae4efb726e2bc3e494c3d
diff --git a/plugins/replication b/plugins/replication
index c62dcce..cd17fe7 160000
--- a/plugins/replication
+++ b/plugins/replication
@@ -1 +1 @@
-Subproject commit c62dcced96659f717db59185e98d83398df50f46
+Subproject commit cd17fe7f90e5a36ab84b9b7ce0aab22e60e48a70
diff --git a/polygerrit-ui/app/.eslintrc.js b/polygerrit-ui/app/.eslintrc.js
index faf126c..247227b 100644
--- a/polygerrit-ui/app/.eslintrc.js
+++ b/polygerrit-ui/app/.eslintrc.js
@@ -277,6 +277,18 @@
},
},
{
+ files: ['**/api/*.ts'],
+ rules: {
+ 'regex/invalid': [
+ 'error', [{
+ regex: 'export interface',
+ message: 'All interfaces in the api/ dir must have "declare"',
+ replacement: 'export declare interface',
+ }],
+ ],
+ },
+ },
+ {
files: ['**/*.ts'],
extends: [require.resolve('gts/.eslintrc.json')],
rules: {
@@ -406,6 +418,7 @@
'jsdoc',
'import',
'prettier',
+ 'regex',
],
settings: {
'html/report-bad-indent': 'error',
diff --git a/polygerrit-ui/app/BUILD b/polygerrit-ui/app/BUILD
index 613efd6..cc62f05 100644
--- a/polygerrit-ui/app/BUILD
+++ b/polygerrit-ui/app/BUILD
@@ -45,8 +45,6 @@
),
allow_js = True,
incremental = True,
- # The same outdir also appears in the following files:
- # polylint_test.sh
out_dir = "_pg_ts_out",
tsc = "//tools/node_tools:tsc-bin",
tsconfig = ":ts_config_bazel",
@@ -98,7 +96,6 @@
ignore_templates_list = [
"elements/admin/gr-access-section/gr-access-section_html.ts",
"elements/admin/gr-admin-view/gr-admin-view_html.ts",
- "elements/admin/gr-create-change-dialog/gr-create-change-dialog_html.ts",
"elements/admin/gr-create-repo-dialog/gr-create-repo-dialog_html.ts",
"elements/admin/gr-group-members/gr-group-members_html.ts",
"elements/admin/gr-group/gr-group_html.ts",
@@ -145,17 +142,19 @@
"elements/shared/gr-list-view/gr-list-view_html.ts",
]
+sources_for_template_checking = glob(
+ [src_dir + "/**/*" + ext for src_dir in src_dirs for ext in [
+ ".ts",
+ ]],
+ exclude = [
+ "**/*_test.ts",
+ ] + ignore_templates_list,
+)
+
# Transform templates into a .ts files.
templates_srcs = transform_polymer_templates(
name = "template_test",
- srcs = glob(
- [src_dir + "/**/*" + ext for src_dir in src_dirs for ext in [
- ".ts",
- ]],
- exclude = [
- "**/*_test.ts",
- ] + ignore_templates_list,
- ),
+ srcs = sources_for_template_checking,
out_tsconfig = "tsconfig_template_test.json",
tsconfig = "tsconfig_bazel.json",
deps = [
@@ -165,50 +164,34 @@
],
)
-# Compile transformed templates together with the polygerrit source. If
-# templates don't have problem, then the compilation ends without error.
-# Otherwise, the typescript compiler reports the error.
-# Note, that the compile_ts macro creates build rules. If the build succeed,
-# the macro creates the file compile_template_test.success. The
-# 'validate_polymer_templates' rule tests existence of the file.
-#
-# TODO: Re-instantiate this rule. It broke when switching to ts_project with
-# ERROR: //polygerrit-ui/app:compile_template_test srcs cannot be a mix of
-# generated files and source files since this would prevent giving a
-# single rootDir to the TypeScript compiler
-# Also, the emitJS feature of compile_ts has to be re-created in some form.
-#ts_project(
-# name = "compile_template_test",
-# srcs = templates_srcs + glob(
-# [src_dir + "/**/*" + ext for src_dir in src_dirs for ext in [
-# ".ts",
-# ]],
-# exclude = [
-# "**/*_test.ts",
-# ] + ignore_templates_list,
-# ),
-# allow_js = True,
-# out_dir = "_pg_template_test_out",
-# # Should not run sandboxed.
-# tags = [
-# "local",
-# "manual",
-# ],
-# tsc = "//tools/node_tools:tsc-bin",
-# tsconfig = "tsconfig_template_test.json",
-#)
-#
-# This rule allows to run polymer template checker with bazel test command.
-# For details - see compile_template_test rule.
-#
-# TODO: Re-instantiate this test. It broke when switching
-# 'compile_template_test'to ts_project, see above. ts_project does not
-# create '.success' files.
-#sh_test(
-# name = "validate_polymer_templates",
-# srcs = [":empty_test.sh"],
-# data = ["compile_template_test.success"],
-#)
+# After templates are converted into a typescript code, the TS compiler should check that the
+# converted code doesn't have the error (i.e. templates don't have problems).
+# The input to the compiler is: the converted (i.e. autogenerated) code + original polygerrit code;
+# the output (i.e. js code) is not needed (we only care wheather the code has error or not).
+# The existing ts_project rule can't compile a mix of a generated and a non-generated code, so it
+# can't be used for the purpose of template checking.
+# Because the output of TS compiler is not needed, the simplest workaround is to run typescript
+# compiler from command line using the sh_test rule. The compiler exits with non-zero return code if
+# errors found and sh_test fails.
+sh_test(
+ name = "polylint_test",
+ srcs = [":compile_generated_templates.sh"],
+ args = [
+ "$(location //tools/node_tools:tsc-bin)",
+ "$(location tsconfig_template_test.json)",
+ ],
+ data = [
+ "tsconfig_template_test.json",
+ "tsconfig_bazel.json",
+ "tsconfig.json",
+ "//tools/node_tools:tsc-bin",
+ "@ui_npm//:node_modules",
+ ] + templates_srcs + sources_for_template_checking,
+ tags = [
+ "local",
+ "manual",
+ ],
+)
polygerrit_bundle(
name = "polygerrit_ui",
@@ -290,33 +273,3 @@
"@npm//gts",
],
)
-
-filegroup(
- name = "polylint-fg",
- srcs = [
- # Workaround for https://github.com/bazelbuild/bazel/issues/1305
- "@ui_npm//:node_modules",
- # Polylinter can't check .ts files, run it on compiled srcs
- ":compile_pg",
- ],
-)
-
-sh_test(
- name = "polylint_test",
- size = "large",
- srcs = ["polylint_test.sh"],
- args = [
- "$(location @tools_npm//polymer-cli/bin:polymer)",
- "$(location polymer.json)",
- ],
- data = [
- "polymer.json",
- ":polylint-fg",
- "@tools_npm//polymer-cli/bin:polymer",
- ],
- # Should not run sandboxed.
- tags = [
- "local",
- "manual",
- ],
-)
diff --git a/polygerrit-ui/app/api/gerrit.ts b/polygerrit-ui/app/api/gerrit.ts
index 8488961..2091eea 100644
--- a/polygerrit-ui/app/api/gerrit.ts
+++ b/polygerrit-ui/app/api/gerrit.ts
@@ -25,7 +25,7 @@
}
}
-export interface Gerrit {
+export declare interface Gerrit {
install(
callback: (plugin: PluginApi) => void,
opt_version?: string,
diff --git a/polygerrit-ui/app/api/hook.ts b/polygerrit-ui/app/api/hook.ts
index f8a6cc1..8cbb9d0 100644
--- a/polygerrit-ui/app/api/hook.ts
+++ b/polygerrit-ui/app/api/hook.ts
@@ -16,7 +16,7 @@
*/
import {ChangeInfo, ConfigInfo, RevisionInfo} from './rest-api';
-export interface GerritElementExtensions {
+export declare interface GerritElementExtensions {
content?: HTMLElement & {hidden?: boolean};
change?: ChangeInfo;
revision?: RevisionInfo;
diff --git a/polygerrit-ui/app/api/rest-api.ts b/polygerrit-ui/app/api/rest-api.ts
index 4a4b79d..f86e825 100644
--- a/polygerrit-ui/app/api/rest-api.ts
+++ b/polygerrit-ui/app/api/rest-api.ts
@@ -240,7 +240,7 @@
* The AccountDetailInfo entity contains detailed information about an account.
* https://gerrit-review.googlesource.com/Documentation/rest-api-accounts.html#account-detail-info
*/
-export interface AccountDetailInfo extends AccountInfo {
+export declare interface AccountDetailInfo extends AccountInfo {
registered_on: Timestamp;
}
@@ -249,7 +249,7 @@
* from the accounts section.
* https://gerrit-review.googlesource.com/Documentation/rest-api-config.html#accounts-config-info
*/
-export interface AccountsConfigInfo {
+export declare interface AccountsConfigInfo {
visibility: string;
default_display_name: DefaultDisplayNameConfig;
}
@@ -320,7 +320,7 @@
* configuration of the Gerrit server.
* https://gerrit-review.googlesource.com/Documentation/rest-api-config.html#auth-info
*/
-export interface AuthInfo {
+export declare interface AuthInfo {
auth_type: AuthType; // docs incorrectly names it 'type'
use_contributor_agreements?: boolean;
contributor_agreements?: ContributorAgreementInfo[];
@@ -356,7 +356,7 @@
* from the change section.
* https://gerrit-review.googlesource.com/Documentation/rest-api-config.html#change-config-info
*/
-export interface ChangeConfigInfo {
+export declare interface ChangeConfigInfo {
allow_blame?: boolean;
large_change: number;
update_delay: number;
@@ -464,14 +464,14 @@
* The CommentLinkInfo entity describes acommentlink.
* https://gerrit-review.googlesource.com/Documentation/rest-api-projects.html#commentlink-info
*/
-export interface CommentLinkInfo {
+export declare interface CommentLinkInfo {
match: string;
link?: string;
enabled?: boolean;
html?: string;
}
-export interface CommentLinks {
+export declare interface CommentLinks {
[name: string]: CommentLinkInfo;
}
@@ -492,7 +492,8 @@
resolve_conflicts_web_links?: WebLinkInfo[];
}
-export interface ConfigArrayParameterInfo extends ConfigParameterInfoBase {
+export declare interface ConfigArrayParameterInfo
+ extends ConfigParameterInfoBase {
type: ConfigParameterInfoType.ARRAY;
values: string[];
}
@@ -502,7 +503,7 @@
* project configuration.
* https://gerrit-review.googlesource.com/Documentation/rest-api-projects.html#config-info
*/
-export interface ConfigInfo {
+export declare interface ConfigInfo {
description?: string;
use_contributor_agreements?: InheritedBooleanInfo;
use_content_merge?: InheritedBooleanInfo;
@@ -525,7 +526,8 @@
reject_empty_commit?: InheritedBooleanInfo;
}
-export interface ConfigListParameterInfo extends ConfigParameterInfoBase {
+export declare interface ConfigListParameterInfo
+ extends ConfigParameterInfoBase {
type: ConfigParameterInfoType.LIST;
permitted_values?: string[];
}
@@ -539,7 +541,7 @@
* The ConfigParameterInfo entity describes a project configurationparameter.
* https://gerrit-review.googlesource.com/Documentation/rest-api-projects.html#config-parameter-info
*/
-export interface ConfigParameterInfoBase {
+export declare interface ConfigParameterInfoBase {
display_name?: string;
description?: string;
warning?: string;
@@ -554,7 +556,7 @@
}
// https://gerrit-review.googlesource.com/Documentation/rest-api-accounts.html#contributor-agreement-info
-export interface ContributorAgreementInfo {
+export declare interface ContributorAgreementInfo {
name: string;
description: string;
url: string;
@@ -584,7 +586,7 @@
* options.
* https://gerrit-review.googlesource.com/Documentation/rest-api-config.html#download-info
*/
-export interface DownloadInfo {
+export declare interface DownloadInfo {
schemes: SchemesInfoMap;
archives: string[];
}
@@ -594,7 +596,7 @@
* scheme and its commands.
* https://gerrit-review.googlesource.com/Documentation/rest-api-config.html
*/
-export interface DownloadSchemeInfo {
+export declare interface DownloadSchemeInfo {
url: string;
is_auth_required: boolean;
is_auth_supported: boolean;
@@ -634,7 +636,7 @@
* the gerrit section.
* https://gerrit-review.googlesource.com/Documentation/rest-api-config.html#gerrit-info
*/
-export interface GerritInfo {
+export declare interface GerritInfo {
all_projects: string; // Doc contains incorrect name
all_users: string; // Doc contains incorrect name
doc_search: boolean;
@@ -685,7 +687,7 @@
* Gerrit internal group, or an external group that is known to Gerrit.
* https://gerrit-review.googlesource.com/Documentation/rest-api-groups.html#group-info
*/
-export interface GroupInfo {
+export declare interface GroupInfo {
id: GroupId;
name?: GroupName;
url?: string;
@@ -706,7 +708,7 @@
* Options of the group.
* https://gerrit-review.googlesource.com/Documentation/rest-api-groups.html
*/
-export interface GroupOptionsInfo {
+export declare interface GroupOptionsInfo {
visible_to_all: boolean;
}
@@ -718,7 +720,7 @@
* A boolean value that can also be inherited.
* https://gerrit-review.googlesource.com/Documentation/rest-api-projects.html#inherited-boolean-info
*/
-export interface InheritedBooleanInfo {
+export declare interface InheritedBooleanInfo {
value: boolean;
configured_value: InheritedBooleanInfoConfiguredValue;
inherited_value?: boolean;
@@ -750,7 +752,7 @@
* has.
* https://gerrit-review.googlesource.com/Documentation/rest-api-projects.html#label-type-info
*/
-export interface LabelTypeInfo {
+export declare interface LabelTypeInfo {
values: LabelTypeInfoValues;
default_value: number;
}
@@ -765,7 +767,7 @@
* size limit of a project.
* https://gerrit-review.googlesource.com/Documentation/rest-api-projects.html#max-object-size-limit-info
*/
-export interface MaxObjectSizeLimitInfo {
+export declare interface MaxObjectSizeLimitInfo {
value?: string;
configured_value?: string;
summary?: string;
@@ -793,7 +795,7 @@
* plugins.
* https://gerrit-review.googlesource.com/Documentation/rest-api-config.html#plugin-config-info
*/
-export interface PluginConfigInfo {
+export declare interface PluginConfigInfo {
has_avatars: boolean;
// Exists in Java class, but not mentioned in docs.
js_resource_paths: string[];
@@ -828,7 +830,7 @@
* The ProjectInfo entity contains information about a project
* https://gerrit-review.googlesource.com/Documentation/rest-api-projects.html#project-info
*/
-export interface ProjectInfo {
+export declare interface ProjectInfo {
id: UrlEncodedRepoName;
// name is not set if returned in a map where the project name is used as
// map key
@@ -845,7 +847,7 @@
web_links?: WebLinkInfo[];
}
-export interface ProjectInfoWithName extends ProjectInfo {
+export declare interface ProjectInfoWithName extends ProjectInfo {
name: RepoName;
}
@@ -891,7 +893,7 @@
* git-receive-pack behavior on the server.
* https://gerrit-review.googlesource.com/Documentation/rest-api-config.html#receive-info
*/
-export interface ReceiveInfo {
+export declare interface ReceiveInfo {
enable_signed_push?: string;
}
@@ -964,7 +966,7 @@
* Gerrit server.
* https://gerrit-review.googlesource.com/Documentation/rest-api-config.html#server-info
*/
-export interface ServerInfo {
+export declare interface ServerInfo {
accounts: AccountsConfigInfo;
auth: AuthInfo;
change: ChangeConfigInfo;
@@ -999,7 +1001,7 @@
* project inheritance.
* https://gerrit-review.googlesource.com/Documentation/rest-api-projects.html#submit-type-info
*/
-export interface SubmitTypeInfo {
+export declare interface SubmitTypeInfo {
value: Exclude<SubmitType, SubmitType.INHERIT>;
configured_value: SubmitType;
inherited_value: Exclude<SubmitType, SubmitType.INHERIT>;
@@ -1010,7 +1012,7 @@
* the suggest section.
* https://gerrit-review.googlesource.com/Documentation/rest-api-config.html#suggest-info
*/
-export interface SuggestInfo {
+export declare interface SuggestInfo {
from: number;
}
@@ -1038,7 +1040,7 @@
* from the user section.
* https://gerrit-review.googlesource.com/Documentation/rest-api-config.html#user-config-info
*/
-export interface UserConfigInfo {
+export declare interface UserConfigInfo {
anonymous_coward_name: string;
}
diff --git a/polygerrit-ui/app/api/styles.ts b/polygerrit-ui/app/api/styles.ts
index ded3beb..43149d3 100644
--- a/polygerrit-ui/app/api/styles.ts
+++ b/polygerrit-ui/app/api/styles.ts
@@ -29,11 +29,11 @@
*/
/** Lit plugins can cast Style to CSSResult. */
-export interface Style {
+export declare interface Style {
toString(): string;
}
-export interface Styles {
+export declare interface Styles {
font: Style;
form: Style;
menuPage: Style;
diff --git a/polygerrit-ui/app/compile_generated_templates.sh b/polygerrit-ui/app/compile_generated_templates.sh
new file mode 100755
index 0000000..68bf485
--- /dev/null
+++ b/polygerrit-ui/app/compile_generated_templates.sh
@@ -0,0 +1 @@
+$1 --project $2 --baseUrl ./external/ui_npm/node_modules/ --rootDir null
diff --git a/polygerrit-ui/app/constants/reporting.ts b/polygerrit-ui/app/constants/reporting.ts
index a09c1c3..a10bdda 100644
--- a/polygerrit-ui/app/constants/reporting.ts
+++ b/polygerrit-ui/app/constants/reporting.ts
@@ -23,6 +23,7 @@
VISIBILILITY_VISIBLE = 'Visibility changed to visible',
EXTENSION_DETECTED = 'Extension detected',
PLUGINS_INSTALLED = 'Plugins installed',
+ PLUGINS_FAILED = 'Some plugins failed to load',
USER_REFERRED_FROM = 'User referred from',
}
diff --git a/polygerrit-ui/app/elements/admin/gr-create-change-dialog/gr-create-change-dialog.ts b/polygerrit-ui/app/elements/admin/gr-create-change-dialog/gr-create-change-dialog.ts
index 63b10ec..15f6f4b 100644
--- a/polygerrit-ui/app/elements/admin/gr-create-change-dialog/gr-create-change-dialog.ts
+++ b/polygerrit-ui/app/elements/admin/gr-create-change-dialog/gr-create-change-dialog.ts
@@ -32,7 +32,7 @@
InheritedBooleanInfo,
} from '../../../types/common';
import {InheritedBooleanInfoConfiguredValue} from '../../../constants/constants';
-import {GrAutocomplete} from '../../shared/gr-autocomplete/gr-autocomplete';
+import {GrTypedAutocomplete} from '../../shared/gr-autocomplete/gr-autocomplete';
import {IronAutogrowTextareaElement} from '@polymer/iron-autogrow-textarea/iron-autogrow-textarea';
import {appContext} from '../../../services/app-context';
import {Subject} from 'rxjs';
@@ -41,6 +41,7 @@
serverConfig$,
} from '../../../services/config/config-model';
import {takeUntil} from 'rxjs/operators';
+import {IronInputElement} from '@polymer/iron-input/iron-input';
const SUGGESTIONS_LIMIT = 15;
const REF_PREFIX = 'refs/heads/';
@@ -48,8 +49,8 @@
export interface GrCreateChangeDialog {
$: {
privateChangeCheckBox: HTMLInputElement;
- branchInput: GrAutocomplete;
- tagNameInput: HTMLInputElement;
+ branchInput: GrTypedAutocomplete<BranchName>;
+ tagNameInput: IronInputElement;
messageInput: IronAutogrowTextareaElement;
};
}
@@ -63,19 +64,19 @@
repoName?: RepoName;
@property({type: String})
- branch?: BranchName;
+ branch = '' as BranchName;
@property({type: Object})
_repoConfig?: ConfigInfo;
@property({type: String})
- subject?: string;
+ subject = '';
@property({type: String})
topic?: string;
@property({type: Object})
- _query?: (input: string) => Promise<{name: string}[]>;
+ _query?: (input: string) => Promise<{name: BranchName}[]>;
@property({type: String})
baseChange?: ChangeId;
@@ -90,7 +91,7 @@
canCreate = false;
@property({type: Boolean})
- _privateChangesEnabled?: boolean;
+ _privateChangesEnabled = false;
restApiService = appContext.restApiService;
@@ -120,7 +121,7 @@
super.disconnectedCallback();
}
- _computeBranchClass(baseChange: boolean) {
+ _computeBranchClass(baseChange?: ChangeId) {
return baseChange ? 'hide' : '';
}
@@ -165,19 +166,19 @@
.getRepoBranches(input, this.repoName, SUGGESTIONS_LIMIT)
.then(response => {
if (!response) return [];
- const branches = [];
+ const branches: Array<{name: BranchName}> = [];
for (const branchInfo of response) {
let name: string = branchInfo.ref;
if (name.startsWith('refs/heads/')) {
name = name.substring('refs/heads/'.length);
}
- branches.push({name});
+ branches.push({name: name as BranchName});
}
return branches;
});
}
- _formatBooleanString(config: InheritedBooleanInfo) {
+ _formatBooleanString(config?: InheritedBooleanInfo) {
if (
config &&
config.configured_value === InheritedBooleanInfoConfiguredValue.TRUE
diff --git a/polygerrit-ui/app/elements/admin/gr-create-change-dialog/gr-create-change-dialog_test.ts b/polygerrit-ui/app/elements/admin/gr-create-change-dialog/gr-create-change-dialog_test.ts
index a9de24a..9ed5d81 100644
--- a/polygerrit-ui/app/elements/admin/gr-create-change-dialog/gr-create-change-dialog_test.ts
+++ b/polygerrit-ui/app/elements/admin/gr-create-change-dialog/gr-create-change-dialog_test.ts
@@ -20,7 +20,11 @@
import {GrCreateChangeDialog} from './gr-create-change-dialog';
import {BranchName, GitRef, RepoName} from '../../../types/common';
import {InheritedBooleanInfoConfiguredValue} from '../../../constants/constants';
-import {createChange, createConfig} from '../../../test/test-data-generators';
+import {
+ createChange,
+ createConfig,
+ TEST_CHANGE_ID,
+} from '../../../test/test-data-generators';
import {stubRestApi} from '../../../test/test-utils';
const basicFixture = fixtureFromElement('gr-create-change-dialog');
@@ -130,8 +134,8 @@
});
test('_computeBranchClass', () => {
- assert.equal(element._computeBranchClass(true), 'hide');
- assert.equal(element._computeBranchClass(false), '');
+ assert.equal(element._computeBranchClass(TEST_CHANGE_ID), 'hide');
+ assert.equal(element._computeBranchClass(undefined), '');
});
test('_computePrivateSectionClass', () => {
diff --git a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.ts b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.ts
index e458611..fdd7c79 100644
--- a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.ts
+++ b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.ts
@@ -90,27 +90,19 @@
*/
function computeThreads(
message: CombinedMessage,
- changeComments?: ChangeComments
+ allThreadsForChange: CommentThread[]
): CommentThread[] {
- if (message._index === undefined || changeComments === undefined) {
+ if (message._index === undefined) {
return [];
}
const messageId = getMessageId(message);
- return changeComments.getAllThreadsForChange().filter(thread =>
- thread.comments
- .map(comment => {
- // collapse all by default
- comment.collapsed = true;
- return comment;
- })
- .some(comment => {
- const condition = comment.change_message_id === messageId;
- // Since getAllThreadsForChange() always returns a new copy of
- // all comments we can modify them here without worrying about
- // polluting other threads.
- comment.collapsed = !condition;
- return condition;
- })
+ return allThreadsForChange.filter(thread =>
+ thread.comments.some(comment => {
+ const matchesMessage = comment.change_message_id === messageId;
+ if (!matchesMessage) return false;
+ comment.collapsed = !matchesMessage;
+ return matchesMessage;
+ })
);
}
@@ -198,7 +190,6 @@
}
export const TEST_ONLY = {
- computeThreads,
computeTag,
computeRevision,
computeIsImportant,
@@ -355,14 +346,24 @@
mDate = null;
}
}
- combinedMessages.forEach(m => {
- if (m.expanded === undefined) {
- m.expanded = false;
+
+ const allThreadsForChange = changeComments.getAllThreadsForChange();
+ // collapse all by default
+ for (const thread of allThreadsForChange) {
+ for (const comment of thread.comments) {
+ comment.collapsed = true;
}
- m.commentThreads = computeThreads(m, changeComments);
- m._revision_number = computeRevision(m, combinedMessages);
- m.tag = computeTag(m);
- });
+ }
+
+ for (let i = 0; i < combinedMessages.length; i++) {
+ const message = combinedMessages[i];
+ if (message.expanded === undefined) {
+ message.expanded = false;
+ }
+ message.commentThreads = computeThreads(message, allThreadsForChange);
+ message._revision_number = computeRevision(message, combinedMessages);
+ message.tag = computeTag(message);
+ }
// computeIsImportant() depends on tags and revision numbers already being
// updated for all messages, so we have to compute this in its own forEach
// loop.
@@ -372,10 +373,6 @@
return combinedMessages;
}
- getCommentThreads(message: CombinedMessage, changeComments?: ChangeComments) {
- return computeThreads(message, changeComments);
- }
-
_updateExpandedStateOfAllMessages(exp: boolean) {
if (this._combinedMessages) {
for (let i = 0; i < this._combinedMessages.length; i++) {
@@ -441,24 +438,26 @@
}
/**
- * This method is for reporting stats only.
+ * Called when this._combinedMessages has changed.
*/
_combinedMessagesChanged(combinedMessages?: CombinedMessage[]) {
- if (combinedMessages) {
- if (combinedMessages.length === 0) return;
- const tags = combinedMessages.map(
- message =>
- message.tag || (message as FormattedReviewerUpdateInfo).type || 'none'
- );
- const tagsCounted = tags.reduce(
- (acc, val) => {
- acc[val] = (acc[val] || 0) + 1;
- return acc;
- },
- {all: combinedMessages.length} as TagsCountReportInfo
- );
- this.reporting.reportInteraction('messages-count', tagsCounted);
+ if (!combinedMessages) return;
+ if (combinedMessages.length === 0) return;
+ for (let i = 0; i < combinedMessages.length; i++) {
+ this.notifyPath(`_combinedMessages.${i}.commentThreads`);
}
+ const tags = combinedMessages.map(
+ message =>
+ message.tag || (message as FormattedReviewerUpdateInfo).type || 'none'
+ );
+ const tagsCounted = tags.reduce(
+ (acc, val) => {
+ acc[val] = (acc[val] || 0) + 1;
+ return acc;
+ },
+ {all: combinedMessages.length} as TagsCountReportInfo
+ );
+ this.reporting.reportInteraction('messages-count', tagsCounted);
}
/**
diff --git a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_html.ts b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_html.ts
index 93df77e..56fae87 100644
--- a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_html.ts
+++ b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_html.ts
@@ -93,7 +93,7 @@
change="[[change]]"
change-num="[[changeNum]]"
message="[[message]]"
- comment-threads="[[getCommentThreads(message, changeComments)]]"
+ comment-threads="[[message.commentThreads]]"
project-name="[[projectName]]"
show-reply-button="[[showReplyButtons]]"
on-message-anchor-tap="_handleAnchorClick"
diff --git a/polygerrit-ui/app/elements/change/gr-submit-requirement-hovercard/gr-submit-requirement-hovercard.ts b/polygerrit-ui/app/elements/change/gr-submit-requirement-hovercard/gr-submit-requirement-hovercard.ts
index f636df3..2e00034 100644
--- a/polygerrit-ui/app/elements/change/gr-submit-requirement-hovercard/gr-submit-requirement-hovercard.ts
+++ b/polygerrit-ui/app/elements/change/gr-submit-requirement-hovercard/gr-submit-requirement-hovercard.ts
@@ -53,7 +53,7 @@
account?: AccountInfo;
@property({type: Boolean})
- mutable?: boolean;
+ mutable = false;
@property({type: Boolean})
expanded = false;
diff --git a/polygerrit-ui/app/elements/change/gr-submit-requirements/gr-submit-requirements.ts b/polygerrit-ui/app/elements/change/gr-submit-requirements/gr-submit-requirements.ts
index 724d803..fa590a3 100644
--- a/polygerrit-ui/app/elements/change/gr-submit-requirements/gr-submit-requirements.ts
+++ b/polygerrit-ui/app/elements/change/gr-submit-requirements/gr-submit-requirements.ts
@@ -28,9 +28,11 @@
import {unique} from '../../../utils/common-util';
import {
extractAssociatedLabels,
+ hasVotes,
iconForStatus,
} from '../../../utils/label-util';
import {fontStyles} from '../../../styles/gr-font-styles';
+import {charsOnly} from '../../../utils/string-util';
@customElement('gr-submit-requirements')
export class GrSubmitRequirements extends LitElement {
@@ -117,7 +119,9 @@
</thead>
<tbody>
${submit_requirements.map(
- requirement => html`<tr id="requirement-${requirement.name}">
+ requirement => html`<tr
+ id="requirement-${charsOnly(requirement.name)}"
+ >
<td>${this.renderStatus(requirement.status)}</td>
<td class="name">
<gr-limited-text
@@ -134,7 +138,7 @@
${submit_requirements.map(
requirement => html`
<gr-submit-requirement-hovercard
- for="requirement-${requirement.name}"
+ for="requirement-${charsOnly(requirement.name)}"
.requirement="${requirement}"
.change="${this.change}"
.account="${this.account}"
@@ -159,11 +163,19 @@
renderVotes(requirement: SubmitRequirementResultInfo) {
const requirementLabels = extractAssociatedLabels(requirement);
- const labels = this.change?.labels ?? {};
+ const allLabels = this.change?.labels ?? {};
+ const associatedLabels = Object.keys(allLabels).filter(label =>
+ requirementLabels.includes(label)
+ );
- return Object.keys(labels)
- .filter(label => requirementLabels.includes(label))
- .map(label => this.renderLabelVote(label, labels));
+ const everyAssociatedLabelsIsWithoutVotes = associatedLabels.every(
+ label => !hasVotes(allLabels[label])
+ );
+ if (everyAssociatedLabelsIsWithoutVotes) return html`No votes`;
+
+ return associatedLabels.map(label =>
+ this.renderLabelVote(label, allLabels)
+ );
}
renderLabelVote(label: string, labels: LabelNameToInfoMap) {
@@ -193,9 +205,9 @@
const labelAssociatedWithSubmitReqs = submitReqs
.flatMap(req => extractAssociatedLabels(req))
.filter(unique);
- const triggerVotes = allLabels.filter(
- label => !labelAssociatedWithSubmitReqs.includes(label)
- );
+ const triggerVotes = allLabels
+ .filter(label => !labelAssociatedWithSubmitReqs.includes(label))
+ .filter(label => hasVotes(labels[label]));
if (!triggerVotes.length) return;
return html`<h3 class="metadata-title heading-3">Trigger Votes</h3>
<section class="votes">
diff --git a/polygerrit-ui/app/elements/checks/gr-checks-action.ts b/polygerrit-ui/app/elements/checks/gr-checks-action.ts
index 87cab46..aed07e0 100644
--- a/polygerrit-ui/app/elements/checks/gr-checks-action.ts
+++ b/polygerrit-ui/app/elements/checks/gr-checks-action.ts
@@ -26,7 +26,7 @@
action!: Action;
@property()
- eventTarget?: EventTarget;
+ eventTarget: HTMLElement | null = null;
private checksService = appContext.checksService;
diff --git a/polygerrit-ui/app/elements/shared/gr-autocomplete/gr-autocomplete.ts b/polygerrit-ui/app/elements/shared/gr-autocomplete/gr-autocomplete.ts
index 3f52650..9918f39 100644
--- a/polygerrit-ui/app/elements/shared/gr-autocomplete/gr-autocomplete.ts
+++ b/polygerrit-ui/app/elements/shared/gr-autocomplete/gr-autocomplete.ts
@@ -29,6 +29,7 @@
import {CustomKeyboardEvent} from '../../../types/events';
import {fireEvent} from '../../../utils/event-util';
import {debounce, DelayedTask} from '../../../utils/async-util';
+import {PropertyType} from '../../../types/common';
const TOKENIZE_REGEX = /(?:[^\s"]+|"[^"]*")+/g;
const DEBOUNCE_WAIT_MS = 200;
@@ -40,9 +41,9 @@
};
}
-export type AutocompleteQuery = (
+export type AutocompleteQuery<T = string> = (
text: string
-) => Promise<AutocompleteSuggestion[]>;
+) => Promise<Array<AutocompleteSuggestion<T>>>;
declare global {
interface HTMLElementTagNameMap {
@@ -50,11 +51,11 @@
}
}
-export interface AutocompleteSuggestion {
+export interface AutocompleteSuggestion<T = string> {
name?: string;
label?: string;
- value?: string;
- text?: string;
+ value?: T;
+ text?: T;
}
export interface AutocompleteCommitEventDetail {
@@ -102,7 +103,7 @@
*
*/
@property({type: Object})
- query: AutocompleteQuery = () => Promise.resolve([]);
+ query?: AutocompleteQuery = () => Promise.resolve([]);
/**
* The number of characters that must be typed before suggestions are
@@ -298,6 +299,12 @@
if (this._disableSuggestions) {
return;
}
+
+ const query = this.query;
+ if (!query) {
+ return;
+ }
+
if (text.length < threshold) {
this.value = '';
return;
@@ -308,7 +315,7 @@
}
const update = () => {
- this.query(text).then(suggestions => {
+ query(text).then(suggestions => {
if (text !== this.text) {
// Late response.
return;
@@ -505,3 +512,24 @@
return showSearchIcon ? 'showSearchIcon' : '';
}
}
+
+/**
+ * Often gr-autocomplete is used for BranchName, RepoName, etc...
+ * GrTypedAutocomplete allows to define more precise typing in templates.
+ * For example, instead of
+ * $: {
+ * branchSelect: GrAutocomplete
+ * }
+ * you can write
+ * $: {
+ * branchSelect: GrTypedAutocomplete<BranchName>
+ * }
+ * And later user $.branchSelect.text without type conversion to BranchName.
+ */
+export interface GrTypedAutocomplete<
+ T extends PropertyType<GrAutocomplete, 'text'>
+> extends GrAutocomplete {
+ text: T;
+ value: T;
+ query?: AutocompleteQuery<T>;
+}
diff --git a/polygerrit-ui/app/elements/shared/gr-hovercard/gr-hovercard-behavior.ts b/polygerrit-ui/app/elements/shared/gr-hovercard/gr-hovercard-behavior.ts
index 2bb9de5..bbd1708 100644
--- a/polygerrit-ui/app/elements/shared/gr-hovercard/gr-hovercard-behavior.ts
+++ b/polygerrit-ui/app/elements/shared/gr-hovercard/gr-hovercard-behavior.ts
@@ -470,6 +470,7 @@
};
export interface GrHovercardBehaviorInterface {
+ _target: HTMLElement | null;
ready(): void;
removeListeners(): void;
debounceHide(): void;
diff --git a/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-plugin-loader.ts b/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-plugin-loader.ts
index 6fc8f1b..7c99480 100644
--- a/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-plugin-loader.ts
+++ b/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-plugin-loader.ts
@@ -123,7 +123,10 @@
});
this.awaitPluginsLoaded().then(() => {
- this._getReporting().pluginsLoaded(this._getAllInstalledPluginNames());
+ const loaded = this.getPluginsByState(PluginState.LOADED);
+ const failed = this.getPluginsByState(PluginState.LOAD_FAILED);
+ this._getReporting().pluginsLoaded(loaded.map(p => p.name));
+ this._getReporting().pluginsFailed(failed.map(p => p.name));
});
}
@@ -140,14 +143,8 @@
return url.pathname && url.pathname.endsWith(suffix);
}
- _getAllInstalledPluginNames() {
- const installedPlugins = [];
- for (const plugin of this._plugins.values()) {
- if (plugin.state === PluginState.LOADED) {
- installedPlugins.push(plugin.name);
- }
- }
- return installedPlugins;
+ private getPluginsByState(state: PluginState) {
+ return [...this._plugins.values()].filter(p => p.state === state);
}
install(
@@ -190,16 +187,9 @@
}
}
- // The polygerrit uses version of sinon where you can't stub getter,
- // declare it as a function here
arePluginsLoaded() {
- // As the size of plugins is relatively small,
- // so the performance of this check should be reasonable
if (!this._pluginListLoaded) return false;
- for (const plugin of this._plugins.values()) {
- if (plugin.state === PluginState.PENDING) return false;
- }
- return true;
+ return this.getPluginsByState(PluginState.PENDING).length === 0;
}
_checkIfCompleted() {
@@ -214,15 +204,14 @@
}
_timeout() {
- const pendingPlugins = [];
- for (const plugin of this._plugins.values()) {
- if (plugin.state === PluginState.PENDING) {
- this._updatePluginState(plugin.url, PluginState.LOAD_FAILED);
- this._checkIfCompleted();
- pendingPlugins.push(plugin.url);
- }
+ const pending = this.getPluginsByState(PluginState.PENDING);
+ for (const plugin of pending) {
+ this._updatePluginState(plugin.url, PluginState.LOAD_FAILED);
}
- return `Timeout when loading plugins: ${pendingPlugins.join(',')}`;
+ this._checkIfCompleted();
+ return `Timeout when loading plugins: ${pending
+ .map(p => p.name)
+ .join(',')}`;
}
_failToLoad(message: string, pluginUrl?: string) {
@@ -252,6 +241,7 @@
plugin: null,
});
}
+ console.info(`Plugin ${key} ${state}`);
return this._plugins.get(key)!;
}
@@ -259,7 +249,6 @@
const pluginObj = this._updatePluginState(url, PluginState.LOADED);
pluginObj.plugin = plugin;
this._getReporting().pluginLoaded(plugin.getPluginName() || url);
- console.info(`Plugin ${plugin.getPluginName() || url} installed.`);
this._checkIfCompleted();
}
diff --git a/polygerrit-ui/app/elements/shared/gr-label-info/gr-label-info.ts b/polygerrit-ui/app/elements/shared/gr-label-info/gr-label-info.ts
index 026ca4c..e01c5d3 100644
--- a/polygerrit-ui/app/elements/shared/gr-label-info/gr-label-info.ts
+++ b/polygerrit-ui/app/elements/shared/gr-label-info/gr-label-info.ts
@@ -39,6 +39,7 @@
import {GrButton} from '../gr-button/gr-button';
import {getVotingRangeOrDefault} from '../../../utils/label-util';
import {appContext} from '../../../services/app-context';
+import {ParsedChangeInfo} from '../../../types/types';
declare global {
interface HTMLElementTagNameMap {
@@ -72,7 +73,7 @@
label = '';
@property({type: Object})
- change?: ChangeInfo;
+ change?: ParsedChangeInfo;
@property({type: Object})
account?: AccountInfo;
diff --git a/polygerrit-ui/app/elements/shared/gr-label-info/gr-label-info_test.ts b/polygerrit-ui/app/elements/shared/gr-label-info/gr-label-info_test.ts
index b3235fa..b1bd6fa 100644
--- a/polygerrit-ui/app/elements/shared/gr-label-info/gr-label-info_test.ts
+++ b/polygerrit-ui/app/elements/shared/gr-label-info/gr-label-info_test.ts
@@ -31,7 +31,7 @@
import {GrAccountLink} from '../gr-account-link/gr-account-link';
import {
createAccountWithIdNameAndEmail,
- createChange,
+ createParsedChange,
} from '../../../test/test-data-generators';
import {LabelInfo} from '../../../types/common';
@@ -46,7 +46,7 @@
// Needed to trigger computed bindings.
element.account = {};
- element.change = {...createChange(), labels: {}};
+ element.change = {...createParsedChange(), labels: {}};
});
suite('remove reviewer votes', () => {
@@ -60,7 +60,7 @@
sinon.stub(element, '_computeValueTooltip').returns('');
element.account = account;
element.change = {
- ...createChange(),
+ ...createParsedChange(),
labels: {'Code-Review': label},
};
element.labelInfo = label;
diff --git a/polygerrit-ui/app/empty_test.sh b/polygerrit-ui/app/empty_test.sh
deleted file mode 100755
index e69de29..0000000
--- a/polygerrit-ui/app/empty_test.sh
+++ /dev/null
diff --git a/polygerrit-ui/app/services/gr-reporting/gr-reporting.ts b/polygerrit-ui/app/services/gr-reporting/gr-reporting.ts
index 1445a59..06f1a0c 100644
--- a/polygerrit-ui/app/services/gr-reporting/gr-reporting.ts
+++ b/polygerrit-ui/app/services/gr-reporting/gr-reporting.ts
@@ -57,6 +57,7 @@
reportExtension(name: string): void;
pluginLoaded(name: string): void;
pluginsLoaded(pluginsList?: string[]): void;
+ pluginsFailed(pluginsList?: string[]): void;
error(err: Error, reporter?: string, details?: EventDetails): void;
/**
* Reset named timer.
diff --git a/polygerrit-ui/app/services/gr-reporting/gr-reporting_impl.ts b/polygerrit-ui/app/services/gr-reporting/gr-reporting_impl.ts
index 0df7d12..65a5784 100644
--- a/polygerrit-ui/app/services/gr-reporting/gr-reporting_impl.ts
+++ b/polygerrit-ui/app/services/gr-reporting/gr-reporting_impl.ts
@@ -636,6 +636,18 @@
);
}
+ pluginsFailed(pluginsList?: string[]) {
+ if (!pluginsList || pluginsList.length === 0) return;
+ this.reporter(
+ LIFECYCLE.TYPE,
+ LIFECYCLE.CATEGORY.PLUGINS_INSTALLED,
+ LifeCycle.PLUGINS_FAILED,
+ undefined,
+ {pluginsList: pluginsList || []},
+ true
+ );
+ }
+
/**
* Reset named Timing.
*/
diff --git a/polygerrit-ui/app/services/gr-reporting/gr-reporting_mock.ts b/polygerrit-ui/app/services/gr-reporting/gr-reporting_mock.ts
index 13461bf..337cf2f 100644
--- a/polygerrit-ui/app/services/gr-reporting/gr-reporting_mock.ts
+++ b/polygerrit-ui/app/services/gr-reporting/gr-reporting_mock.ts
@@ -56,6 +56,7 @@
},
pluginLoaded: () => {},
pluginsLoaded: () => {},
+ pluginsFailed: () => {},
recordDraftInteraction: () => {},
reporter: () => {},
reportErrorDialog: (message: string) => {
diff --git a/polygerrit-ui/app/utils/label-util.ts b/polygerrit-ui/app/utils/label-util.ts
index 16e6803..cde9a45 100644
--- a/polygerrit-ui/app/utils/label-util.ts
+++ b/polygerrit-ui/app/utils/label-util.ts
@@ -15,6 +15,7 @@
* limitations under the License.
*/
import {
+ isQuickLabelInfo,
SubmitRequirementResultInfo,
SubmitRequirementStatus,
} from '../api/rest-api';
@@ -121,6 +122,19 @@
return label.all?.filter(x => x._account_id === account._account_id)[0];
}
+export function hasVotes(labelInfo: LabelInfo): boolean {
+ if (isDetailedLabelInfo(labelInfo)) {
+ return (labelInfo.all ?? []).some(
+ approval =>
+ getLabelStatus(labelInfo, approval.value) !== LabelStatus.NEUTRAL
+ );
+ }
+ if (isQuickLabelInfo(labelInfo)) {
+ return !!labelInfo.rejected || !!labelInfo.approved;
+ }
+ return false;
+}
+
export function labelCompare(labelName1: string, labelName2: string) {
if (labelName1 === CODE_REVIEW && labelName2 === CODE_REVIEW) return 0;
if (labelName1 === CODE_REVIEW) return -1;
diff --git a/tools/BUILD b/tools/BUILD
index 18152d6..1bace53 100644
--- a/tools/BUILD
+++ b/tools/BUILD
@@ -79,19 +79,25 @@
name = "error_prone",
javacopts = [
"-XepDisableWarningsInGeneratedCode",
- # "-Xep:AlmostJavadoc:WARN",
+ # The XepDisableWarningsInGeneratedCode disables only warnings, but
+ # not errors. We should manually exclude all files generated by
+ # AutoValue; such files always start $AutoValue_.....
+ # XepExcludedPaths is a regexp. If you need more paths - use | as
+ # separator.
+ "-XepExcludedPaths:.*/\\\\$$AutoValue_.*\\.java",
+ "-Xep:AlmostJavadoc:ERROR",
"-Xep:AlwaysThrows:ERROR",
"-Xep:AmbiguousMethodReference:ERROR",
- # "-Xep:AnnotateFormatMethod:WARN",
- # "-Xep:ArgumentSelectionDefectChecker:WARN",
- # "-Xep:ArrayAsKeyOfSetOrMap:WARN",
+ "-Xep:AnnotateFormatMethod:ERROR",
+ "-Xep:ArgumentSelectionDefectChecker:ERROR",
+ "-Xep:ArrayAsKeyOfSetOrMap:ERROR",
"-Xep:ArrayEquals:ERROR",
"-Xep:ArrayFillIncompatibleType:ERROR",
"-Xep:ArrayHashCode:ERROR",
"-Xep:ArrayToString:ERROR",
"-Xep:ArraysAsListPrimitiveArray:ERROR",
- # "-Xep:AssertEqualsArgumentOrderChecker:WARN",
- # "-Xep:AssertionFailureIgnored:WARN",
+ "-Xep:AssertEqualsArgumentOrderChecker:ERROR",
+ "-Xep:AssertionFailureIgnored:ERROR",
"-Xep:AsyncCallableReturnsNull:ERROR",
"-Xep:AsyncFunctionReturnsNull:ERROR",
"-Xep:AutoValueConstructorOrderChecker:ERROR",
@@ -101,23 +107,23 @@
"-Xep:BadAnnotationImplementation:ERROR",
"-Xep:BadComparable:ERROR",
# "-Xep:BadImport:WARN",
- # "-Xep:BadInstanceof:WARN",
+ "-Xep:BadInstanceof:ERROR",
"-Xep:BadShiftAmount:ERROR",
"-Xep:BanSerializableRead:ERROR",
- # "-Xep:BigDecimalEquals:WARN",
- # "-Xep:BigDecimalLiteralDouble:WARN",
+ "-Xep:BigDecimalEquals:ERROR",
+ "-Xep:BigDecimalLiteralDouble:ERROR",
"-Xep:BoxedPrimitiveConstructor:ERROR",
"-Xep:BoxedPrimitiveEquality:ERROR",
"-Xep:BundleDeserializationCast:ERROR",
- # "-Xep:ByteBufferBackingArray:WARN",
- # "-Xep:CacheLoaderNull:WARN",
+ "-Xep:ByteBufferBackingArray:ERROR",
+ "-Xep:CacheLoaderNull:ERROR",
"-Xep:CannotMockFinalClass:ERROR",
- # "-Xep:CanonicalDuration:WARN",
+ "-Xep:CanonicalDuration:ERROR",
# "-Xep:CatchAndPrintStackTrace:WARN",
- # "-Xep:CatchFail:WARN",
- # "-Xep:ChainedAssertionLosesContext:WARN",
+ "-Xep:CatchFail:ERROR",
+ "-Xep:ChainedAssertionLosesContext:ERROR",
"-Xep:ChainingConstructorIgnoresParameter:ERROR",
- # "-Xep:CharacterGetNumericValue:WARN",
+ "-Xep:CharacterGetNumericValue:ERROR",
"-Xep:CheckNotNullMultipleTimes:ERROR",
"-Xep:CheckReturnValue:ERROR",
"-Xep:ClassCanBeStatic:ERROR",
@@ -125,69 +131,69 @@
"-Xep:ClassNewInstance:ERROR",
"-Xep:CollectionIncompatibleType:ERROR",
"-Xep:CollectionToArraySafeParameter:ERROR",
- # "-Xep:CollectionUndefinedEquality:WARN",
- # "-Xep:CollectorShouldNotUseState:WARN",
+ "-Xep:CollectionUndefinedEquality:ERROR",
+ "-Xep:CollectorShouldNotUseState:ERROR",
"-Xep:ComparableAndComparator:ERROR",
"-Xep:ComparableType:ERROR",
- # "-Xep:CompareToZero:WARN",
+ "-Xep:CompareToZero:ERROR",
"-Xep:ComparingThisWithNull:ERROR",
"-Xep:ComparisonOutOfRange:ERROR",
"-Xep:CompatibleWithAnnotationMisuse:ERROR",
"-Xep:CompileTimeConstant:ERROR",
- # "-Xep:ComplexBooleanConstant:WARN",
+ "-Xep:ComplexBooleanConstant:ERROR",
"-Xep:ComputeIfAbsentAmbiguousReference:ERROR",
"-Xep:ConditionalExpressionNumericPromotion:ERROR",
"-Xep:ConstantOverflow:ERROR",
"-Xep:DaggerProvidesNull:ERROR",
"-Xep:DangerousLiteralNull:ERROR",
- # "-Xep:DateChecker:WARN",
+ "-Xep:DateChecker:ERROR",
"-Xep:DateFormatConstant:ERROR",
"-Xep:DeadException:ERROR",
"-Xep:DeadThread:ERROR",
"-Xep:DefaultCharset:ERROR",
# "-Xep:DefaultPackage:WARN",
"-Xep:DepAnn:ERROR",
- # "-Xep:DeprecatedVariable:WARN",
+ "-Xep:DeprecatedVariable:ERROR",
"-Xep:DiscardedPostfixExpression:ERROR",
"-Xep:DoNotCall:ERROR",
- # "-Xep:DoNotCallSuggester:WARN",
- # "-Xep:DoNotClaimAnnotations:WARN",
+ "-Xep:DoNotCallSuggester:ERROR",
+ "-Xep:DoNotClaimAnnotations:ERROR",
"-Xep:DoNotMock:ERROR",
- # "-Xep:DoNotMockAutoValue:WARN",
- # "-Xep:DoubleBraceInitialization:WARN",
+ "-Xep:DoNotMockAutoValue:ERROR",
+ "-Xep:DoubleBraceInitialization:ERROR",
"-Xep:DoubleCheckedLocking:ERROR",
"-Xep:DuplicateMapKeys:ERROR",
"-Xep:DurationFrom:ERROR",
"-Xep:DurationGetTemporalUnit:ERROR",
"-Xep:DurationTemporalUnit:ERROR",
"-Xep:DurationToLongTimeUnit:ERROR",
- # "-Xep:EmptyBlockTag:WARN",
+ "-Xep:EmptyBlockTag:ERROR",
# "-Xep:EmptyCatch:WARN",
- # "-Xep:EmptySetMultibindingContributions:WARN",
+ "-Xep:EmptySetMultibindingContributions:ERROR",
# "-Xep:EqualsGetClass:WARN",
"-Xep:EqualsHashCode:ERROR",
"-Xep:EqualsIncompatibleType:ERROR",
"-Xep:EqualsNaN:ERROR",
- # "-Xep:EqualsNull:WARN",
+ "-Xep:EqualsNull:ERROR",
"-Xep:EqualsReference:ERROR",
- # "-Xep:EqualsUnsafeCast:WARN",
- # "-Xep:EqualsUsingHashCode:WARN",
+ "-Xep:EqualsUnsafeCast:ERROR",
+ "-Xep:EqualsUsingHashCode:ERROR",
"-Xep:EqualsWrongThing:ERROR",
- # "-Xep:ErroneousThreadPoolConstructorChecker:WARN",
+ "-Xep:ErroneousThreadPoolConstructorChecker:ERROR",
# "-Xep:EscapedEntity:WARN",
"-Xep:ExpectedExceptionChecker:ERROR",
- # "-Xep:ExtendingJUnitAssert:WARN",
+ "-Xep:ExtendingJUnitAssert:ERROR",
"-Xep:ExtendsAutoValue:ERROR",
"-Xep:FallThrough:ERROR",
"-Xep:Finally:ERROR",
"-Xep:FloatCast:ERROR",
- # "-Xep:FloatingPointAssertionWithinEpsilon:WARN",
+ "-Xep:FloatingPointAssertionWithinEpsilon:ERROR",
"-Xep:FloatingPointLiteralPrecision:ERROR",
- # "-Xep:FloggerArgumentToString:WARN",
+ "-Xep:FloggerArgumentToString:ERROR",
"-Xep:FloggerFormatString:ERROR",
"-Xep:FloggerLogVarargs:ERROR",
"-Xep:FloggerSplitLogStatement:ERROR",
- # "-Xep:FloggerStringConcatenation:WARN",
+ "-Xep:FloggerStringConcatenation:ERROR",
"-Xep:ForOverride:ERROR",
"-Xep:FormatString:ERROR",
"-Xep:FormatStringAnnotation:ERROR",
@@ -205,11 +211,11 @@
"-Xep:GuiceAssistedInjectScoping:ERROR",
"-Xep:GuiceAssistedParameters:ERROR",
"-Xep:HashtableContains:ERROR",
- # "-Xep:HidingField:WARN",
+ "-Xep:HidingField:ERROR",
"-Xep:IdentityBinaryExpression:ERROR",
"-Xep:IdentityHashMapBoxing:ERROR",
- # "-Xep:IdentityHashMapUsage:WARN",
- # "-Xep:IgnoredPureGetter:WARN",
+ "-Xep:IdentityHashMapUsage:ERROR",
+ "-Xep:IgnoredPureGetter:ERROR",
"-Xep:Immutable:ERROR",
"-Xep:ImmutableAnnotationChecker:ERROR",
"-Xep:ImmutableEnumChecker:ERROR",
@@ -218,30 +224,30 @@
"-Xep:IncompatibleArgumentType:ERROR",
"-Xep:IncompatibleModifiers:ERROR",
# "-Xep:InconsistentCapitalization:WARN",
- # "-Xep:InconsistentHashCode:WARN",
- # "-Xep:IncrementInForLoopAndHeader:WARN",
+ "-Xep:InconsistentHashCode:ERROR",
+ "-Xep:IncrementInForLoopAndHeader:ERROR",
"-Xep:IndexOfChar:ERROR",
"-Xep:InexactVarargsConditional:ERROR",
"-Xep:InfiniteRecursion:ERROR",
"-Xep:InjectOnConstructorOfAbstractClass:ERROR",
- # "-Xep:InheritDoc:WARN",
+ "-Xep:InheritDoc:ERROR",
# "-Xep:InlineFormatString:WARN",
- # "-Xep:InlineMeInliner:WARN",
- # "-Xep:InlineMeSuggester:WARN",
+ "-Xep:InlineMeInliner:ERROR",
+ "-Xep:InlineMeSuggester:ERROR",
"-Xep:InlineMeValidator:ERROR",
"-Xep:InputStreamSlowMultibyteRead:ERROR",
"-Xep:InsecureCryptoUsage:ERROR",
- # "-Xep:InstanceOfAndCastMatchWrongType:WARN",
+ "-Xep:InstanceOfAndCastMatchWrongType:ERROR",
"-Xep:InstantTemporalUnit:ERROR",
- # "-Xep:IntLongMath:WARN",
+ "-Xep:IntLongMath:ERROR",
# "-Xep:InvalidBlockTag:WARN",
# "-Xep:InvalidInlineTag:WARN",
"-Xep:InvalidJavaTimeConstant:ERROR",
- # "-Xep:InvalidLink:WARN",
+ "-Xep:InvalidLink:ERROR",
# "-Xep:InvalidParam:WARN",
"-Xep:InvalidPatternSyntax:ERROR",
- # "-Xep:InvalidThrows:WARN",
- # "-Xep:InvalidThrowsLink:WARN",
+ "-Xep:InvalidThrows:ERROR",
+ "-Xep:InvalidThrowsLink:ERROR",
"-Xep:InvalidTimeZoneID:ERROR",
"-Xep:InvalidZoneId:ERROR",
"-Xep:IsInstanceIncompatibleType:ERROR",
@@ -252,7 +258,7 @@
"-Xep:JUnit3FloatingPointComparisonWithoutDelta:ERROR",
"-Xep:JUnit3TestNotRun:ERROR",
"-Xep:JUnit4ClassAnnotationNonStatic:ERROR",
- # "-Xep:JUnit4ClassUsedInJUnit3:WARN",
+ "-Xep:JUnit4ClassUsedInJUnit3:ERROR",
"-Xep:JUnit4SetUpNotRun:ERROR",
"-Xep:JUnit4TearDownNotRun:ERROR",
"-Xep:JUnit4TestNotRun:ERROR",
@@ -267,39 +273,39 @@
# "-Xep:JavaLangClash:WARN",
"-Xep:JavaLocalDateTimeGetNano:ERROR",
"-Xep:JavaLocalTimeGetNano:ERROR",
- # "-Xep:JavaPeriodGetDays:WARN",
+ "-Xep:JavaPeriodGetDays:ERROR",
"-Xep:JavaTimeDefaultTimeZone:ERROR",
- # "-Xep:JavaUtilDate:WARN",
+ "-Xep:JavaUtilDate:ERROR",
# "-Xep:JdkObsolete:WARN",
"-Xep:JodaConstructors:ERROR",
- # "-Xep:JodaDateTimeConstants:WARN",
+ "-Xep:JodaDateTimeConstants:ERROR",
"-Xep:JodaDurationWithMillis:ERROR",
"-Xep:JodaInstantWithMillis:ERROR",
- # "-Xep:JodaNewPeriod:WARN",
+ "-Xep:JodaNewPeriod:ERROR",
"-Xep:JodaPlusMinusLong:ERROR",
"-Xep:JodaTimeConverterManager:ERROR",
"-Xep:JodaToSelf:ERROR",
"-Xep:JodaWithDurationAddedLong:ERROR",
"-Xep:LiteByteStringUtf8:ERROR",
"-Xep:LiteEnumValueOf:ERROR",
- # "-Xep:LiteProtoToString:WARN",
+ "-Xep:LiteProtoToString:ERROR",
"-Xep:LocalDateTemporalAmount:ERROR",
- # "-Xep:LockNotBeforeTry:WARN",
- # "-Xep:LockOnBoxedPrimitive:WARN",
+ "-Xep:LockNotBeforeTry:ERROR",
+ "-Xep:LockOnBoxedPrimitive:ERROR",
"-Xep:LogicalAssignment:ERROR",
- # "-Xep:LongFloatConversion:WARN",
+ "-Xep:LongFloatConversion:ERROR",
"-Xep:LongLiteralLowerCaseSuffix:ERROR",
"-Xep:LoopConditionChecker:ERROR",
- # "-Xep:LoopOverCharArray:WARN",
+ "-Xep:LoopOverCharArray:ERROR",
"-Xep:LossyPrimitiveCompare:ERROR",
- # "-Xep:MathAbsoluteRandom:WARN",
+ "-Xep:MathAbsoluteRandom:ERROR",
"-Xep:MathRoundIntLong:ERROR",
- # "-Xep:MemoizeConstantVisitorStateLookups:WARN",
+ "-Xep:MemoizeConstantVisitorStateLookups:ERROR",
"-Xep:MislabeledAndroidString:ERROR",
"-Xep:MissingCasesInEnumSwitch:ERROR",
"-Xep:MissingFail:ERROR",
"-Xep:MissingOverride:ERROR",
- # "-Xep:MissingSummary:WARN",
+ "-Xep:MissingSummary:ERROR",
"-Xep:MissingSuperCall:ERROR",
"-Xep:MissingTestCall:ERROR",
"-Xep:MisusedDayOfYear:ERROR",
@@ -307,43 +313,43 @@
"-Xep:MixedDescriptors:ERROR",
# "-Xep:MixedMutabilityReturnType:WARN",
"-Xep:MockitoUsage:ERROR",
- # "-Xep:ModifiedButNotUsed:WARN",
- # "-Xep:ModifyCollectionInEnhancedForLoop:WARN",
- # "-Xep:ModifySourceCollectionInStream:WARN",
+ "-Xep:ModifiedButNotUsed:ERROR",
+ "-Xep:ModifyCollectionInEnhancedForLoop:ERROR",
+ "-Xep:ModifySourceCollectionInStream:ERROR",
"-Xep:ModifyingCollectionWithItself:ERROR",
- # "-Xep:MultipleParallelOrSequentialCalls:WARN",
- # "-Xep:MultipleUnaryOperatorsInMethodCall:WARN",
+ "-Xep:MultipleParallelOrSequentialCalls:ERROR",
+ "-Xep:MultipleUnaryOperatorsInMethodCall:ERROR",
"-Xep:MustBeClosedChecker:ERROR",
"-Xep:MutableConstantField:ERROR",
# "-Xep:MutablePublicArray:WARN",
"-Xep:NCopiesOfChar:ERROR",
"-Xep:NarrowingCompoundAssignment:ERROR",
- # "-Xep:NestedInstanceOfConditions:WARN",
+ "-Xep:NestedInstanceOfConditions:ERROR",
"-Xep:NonAtomicVolatileUpdate:ERROR",
"-Xep:NonCanonicalStaticImport:ERROR",
# "-Xep:NonCanonicalType:WARN",
"-Xep:NonFinalCompileTimeConstant:ERROR",
"-Xep:NonOverridingEquals:ERROR",
"-Xep:NonRuntimeAnnotation:ERROR",
- # "-Xep:NullOptional:WARN",
+ "-Xep:NullOptional:ERROR",
"-Xep:NullTernary:ERROR",
"-Xep:NullableConstructor:ERROR",
"-Xep:NullablePrimitive:ERROR",
- # "-Xep:NullablePrimitiveArray:WARN",
+ "-Xep:NullablePrimitiveArray:ERROR",
"-Xep:NullableVoid:ERROR",
- # "-Xep:ObjectEqualsForPrimitives:WARN",
+ "-Xep:ObjectEqualsForPrimitives:ERROR",
"-Xep:ObjectToString:ERROR",
- # "-Xep:ObjectsHashCodePrimitive:WARN",
+ "-Xep:ObjectsHashCodePrimitive:ERROR",
"-Xep:OperatorPrecedence:ERROR",
"-Xep:OptionalEquality:ERROR",
- # "-Xep:OptionalMapToOptional:WARN",
+ "-Xep:OptionalMapToOptional:ERROR",
"-Xep:OptionalMapUnusedValue:ERROR",
- # "-Xep:OptionalNotPresent:WARN",
+ "-Xep:OptionalNotPresent:ERROR",
"-Xep:OptionalOfRedundantMethod:ERROR",
- # "-Xep:OrphanedFormatString:WARN",
- # "-Xep:OutlineNone:WARN",
+ "-Xep:OrphanedFormatString:ERROR",
+ "-Xep:OutlineNone:ERROR",
"-Xep:OverlappingQualifierAndScopeAnnotation:ERROR",
- # "-Xep:OverrideThrowableToString:WARN",
+ "-Xep:OverrideThrowableToString:ERROR",
"-Xep:Overrides:ERROR",
"-Xep:OverridesGuiceInjectableMethod:ERROR",
"-Xep:OverridesJavaxInjectableMethod:ERROR",
@@ -354,33 +360,33 @@
"-Xep:PeriodFrom:ERROR",
"-Xep:PeriodGetTemporalUnit:ERROR",
"-Xep:PeriodTimeMath:ERROR",
- # "-Xep:PreconditionsCheckNotNullRepeated:WARN",
+ "-Xep:PreconditionsCheckNotNullRepeated:ERROR",
"-Xep:PreconditionsInvalidPlaceholder:ERROR",
- # "-Xep:PrimitiveAtomicReference:WARN",
+ "-Xep:PrimitiveAtomicReference:ERROR",
"-Xep:PrivateSecurityContractProtoAccess:ERROR",
# "-Xep:ProtectedMembersInFinalClass:WARN",
"-Xep:ProtoBuilderReturnValueIgnored:ERROR",
- # "-Xep:ProtoDurationGetSecondsGetNano:WARN",
+ "-Xep:ProtoDurationGetSecondsGetNano:ERROR",
"-Xep:ProtoFieldNullComparison:ERROR",
- # "-Xep:ProtoRedundantSet:WARN",
+ "-Xep:ProtoRedundantSet:ERROR",
"-Xep:ProtoStringFieldReferenceEquality:ERROR",
- # "-Xep:ProtoTimestampGetSecondsGetNano:WARN",
+ "-Xep:ProtoTimestampGetSecondsGetNano:ERROR",
"-Xep:ProtoTruthMixedDescriptors:ERROR",
"-Xep:ProtocolBufferOrdinal:ERROR",
"-Xep:ProvidesMethodOutsideOfModule:ERROR",
"-Xep:RandomCast:ERROR",
"-Xep:RandomModInteger:ERROR",
- # "-Xep:ReachabilityFenceUsage:WARN",
+ "-Xep:ReachabilityFenceUsage:ERROR",
"-Xep:RectIntersectReturnValueIgnored:ERROR",
"-Xep:ReferenceEquality:ERROR",
"-Xep:RefersToDaggerCodegen:ERROR",
"-Xep:RemovedInJDK11:ERROR",
"-Xep:RequiredModifiers:ERROR",
"-Xep:RestrictedApiChecker:ERROR",
- # "-Xep:RethrowReflectiveOperationExceptionAsLinkageError:WARN",
- # "-Xep:ReturnFromVoid:WARN",
+ "-Xep:RethrowReflectiveOperationExceptionAsLinkageError:ERROR",
+ "-Xep:ReturnFromVoid:ERROR",
"-Xep:ReturnValueIgnored:ERROR",
- # "-Xep:RxReturnValueIgnored:WARN",
+ "-Xep:RxReturnValueIgnored:ERROR",
# "-Xep:SameNameButDifferent:WARN",
"-Xep:SelfAssignment:ERROR",
"-Xep:SelfComparison:ERROR",
@@ -388,9 +394,9 @@
"-Xep:ShortCircuitBoolean:ERROR",
"-Xep:ShouldHaveEvenArgs:ERROR",
"-Xep:SizeGreaterThanOrEqualsZero:ERROR",
- # "-Xep:StaticAssignmentInConstructor:WARN",
+ "-Xep:StaticAssignmentInConstructor:ERROR",
"-Xep:StaticGuardedByInstance:ERROR",
- # "-Xep:StaticMockMember:WARN",
+ "-Xep:StaticMockMember:ERROR",
"-Xep:StaticQualifiedUsingExpression:ERROR",
"-Xep:StreamToString:ERROR",
"-Xep:StringBuilderInitWithChar:ERROR",
@@ -398,59 +404,59 @@
# "-Xep:StringSplitter:WARN",
"-Xep:SubstringOfZero:ERROR",
"-Xep:SuppressWarningsDeprecated:ERROR",
- # "-Xep:SwigMemoryLeak:WARN",
+ "-Xep:SwigMemoryLeak:ERROR",
"-Xep:SynchronizeOnNonFinalField:ERROR",
"-Xep:TemporalAccessorGetChronoField:ERROR",
"-Xep:TestParametersNotInitialized:ERROR",
"-Xep:TheoryButNoTheories:ERROR",
# "-Xep:ThreadJoinLoop:WARN",
- # "-Xep:ThreadLocalUsage:WARN",
+ "-Xep:ThreadLocalUsage:ERROR",
# "-Xep:ThreadPriorityCheck:WARN",
"-Xep:ThreeLetterTimeZoneID:ERROR",
"-Xep:ThrowIfUncheckedKnownChecked:ERROR",
"-Xep:ThrowNull:ERROR",
- # "-Xep:TimeUnitConversionChecker:WARN",
- # "-Xep:ToStringReturnsNull:WARN",
+ "-Xep:TimeUnitConversionChecker:ERROR",
+ "-Xep:ToStringReturnsNull:ERROR",
"-Xep:TreeToString:ERROR",
# "-Xep:TruthAssertExpected:WARN",
"-Xep:TruthConstantAsserts:ERROR",
- # "-Xep:TruthGetOrDefault:WARN",
+ "-Xep:TruthGetOrDefault:ERROR",
"-Xep:TruthIncompatibleType:ERROR",
"-Xep:TruthSelfEquals:ERROR",
"-Xep:TryFailThrowable:ERROR",
- # "-Xep:TypeEquals:WARN",
- # "-Xep:TypeNameShadowing:WARN",
+ "-Xep:TypeEquals:ERROR",
+ "-Xep:TypeNameShadowing:ERROR",
"-Xep:TypeParameterQualifier:ERROR",
"-Xep:TypeParameterShadowing:ERROR",
"-Xep:TypeParameterUnusedInFormals:ERROR",
"-Xep:URLEqualsHashCode:ERROR",
# "-Xep:UndefinedEquals:WARN",
- # "-Xep:UnescapedEntity:WARN",
- # "-Xep:UnnecessaryAssignment:WARN",
+ "-Xep:UnescapedEntity:ERROR",
+ "-Xep:UnnecessaryAssignment:ERROR",
"-Xep:UnnecessaryCheckNotNull:ERROR",
# "-Xep:UnnecessaryLambda:WARN",
- # "-Xep:UnnecessaryMethodInvocationMatcher:WARN",
- # "-Xep:UnnecessaryMethodReference:WARN",
+ "-Xep:UnnecessaryMethodInvocationMatcher:ERROR",
+ "-Xep:UnnecessaryMethodReference:ERROR",
# "-Xep:UnnecessaryParentheses:WARN",
"-Xep:UnnecessaryTypeArgument:ERROR",
- # "-Xep:UnrecognisedJavadocTag:WARN",
- # "-Xep:UnsafeFinalization:WARN",
- # "-Xep:UnsafeReflectiveConstructionCast:WARN",
+ "-Xep:UnrecognisedJavadocTag:ERROR",
+ "-Xep:UnsafeFinalization:ERROR",
+ "-Xep:UnsafeReflectiveConstructionCast:ERROR",
"-Xep:UnsynchronizedOverridesSynchronized:ERROR",
"-Xep:UnusedAnonymousClass:ERROR",
"-Xep:UnusedCollectionModifiedInPlace:ERROR",
"-Xep:UnusedException:ERROR",
- # "-Xep:UnusedMethod:WARN",
- # "-Xep:UnusedNestedClass:WARN",
- # "-Xep:UnusedVariable:WARN",
- # "-Xep:UseBinds:WARN",
- # "-Xep:UseCorrectAssertInTests:WARN",
+ "-Xep:UnusedMethod:ERROR",
+ "-Xep:UnusedNestedClass:ERROR",
+ "-Xep:UnusedVariable:ERROR",
+ "-Xep:UseBinds:ERROR",
+ "-Xep:UseCorrectAssertInTests:ERROR",
"-Xep:VarTypeName:ERROR",
- # "-Xep:VariableNameSameAsType:WARN",
+ "-Xep:VariableNameSameAsType:ERROR",
"-Xep:WaitNotInLoop:ERROR",
- # "-Xep:WakelockReleasedDangerously:WARN",
+ "-Xep:WakelockReleasedDangerously:ERROR",
"-Xep:WildcardImport:ERROR",
- # "-Xep:WithSignatureDiscouraged:WARN",
+ "-Xep:WithSignatureDiscouraged:ERROR",
"-Xep:WrongOneof:ERROR",
"-Xep:XorPower:ERROR",
"-Xep:ZoneIdOfZ:ERROR",
diff --git a/twinkie.patch b/twinkie.patch
deleted file mode 100644
index 0a61243..0000000
--- a/twinkie.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/node_modules/twinkie/src/app/index.js
-+++ b/node_modules/twinkie/src/app/index.js
-@@ -250,7 +250,7 @@ twinkie --tsconfig tsconfig.json --outdir output_dir [--files file_list] [--outt
- incremental: false,
- noEmit: true,
- },
-- files: [...allProgramFilesNames, generatedFiles],
-+ files: [...allProgramFilesNames, ...generatedFiles],
- };
- fs.writeFileSync(cmdLineOptions.outputTsConfig, JSON.stringify(tsconfigContent, null, 2));
- }
diff --git a/yarn.lock b/yarn.lock
index 7e13131..be412a5 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -191,9 +191,9 @@
integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==
"@types/node@*":
- version "16.7.10"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.10.tgz#7aa732cc47341c12a16b7d562f519c2383b6d4fc"
- integrity sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==
+ version "16.9.6"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.9.6.tgz#040a64d7faf9e5d9e940357125f0963012e66f04"
+ integrity sha512-YHUZhBOMTM3mjFkXVcK+WwAcYmyhe1wL4lfqNtzI0b3qAy7yuSetnM7QJazgE5PFmgVTNGiLOgRFfJMqW7XpSQ==
"@types/node@^10.1.0":
version "10.17.60"
@@ -973,6 +973,11 @@
dependencies:
prettier-linter-helpers "^1.0.0"
+eslint-plugin-regex@^1.8.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-regex/-/eslint-plugin-regex-1.8.0.tgz#4bd111cf5235fb76a4a7f77d7ffcb7b3777b8a77"
+ integrity sha512-rmzVvpoxHKgvcYDo9d1X9RMFOtyOV3A6taD3KWE6gIID2dHoc8RPd0YAjDSJ0LG35wnehQBfsNB+F7q4eYqXqw==
+
eslint-scope@^5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
@@ -2763,10 +2768,10 @@
dependencies:
tslib "^1.8.1"
-twinkie@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/twinkie/-/twinkie-1.1.2.tgz#c301e4fc26d00d61d3d7e5be030dc6a2264271da"
- integrity sha512-4KwhyrcrRb0WWJKMX/aT+npmMZC0h+sA//+bLhNupmuKvesrH2vEZDe6yIr48FMWKEsdA2xNdQqw/3MapZ5qXQ==
+twinkie@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/twinkie/-/twinkie-1.1.3.tgz#1a6f0cd11c59e245bc2d16c7c9fc1ec13e477229"
+ integrity sha512-8Y1U/UCtf8JC4snuV4KAo4e9nwJcKZUoMVOApihJzua4JJWeGB/2RYqAusKk3cUczJeZRGzirHpP1hkArcbA8A==
dependencies:
"@types/minimatch" "3.0.3"
cheerio "1.0.0-rc.2"
@@ -2812,12 +2817,7 @@
dependencies:
is-typedarray "^1.0.0"
-typescript@4.0.5:
- version "4.0.5"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.5.tgz#ae9dddfd1069f1cb5beb3ef3b2170dd7c1332389"
- integrity sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==
-
-typescript@4.3.2:
+typescript@4.0.5, typescript@4.3.2:
version "4.3.2"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.2.tgz#399ab18aac45802d6f2498de5054fcbbe716a805"
integrity sha512-zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw==