diff --git a/Documentation/cmd-review.txt b/Documentation/cmd-review.txt index 121fcadd61..59ed6ffc58 100644 --- a/Documentation/cmd-review.txt +++ b/Documentation/cmd-review.txt @@ -120,9 +120,10 @@ branch. Votes that are not permitted for the user are silently ignored. --label:: - Set a label by name to the value 'N'. Invalid votes (invalid label - or invalid value) and votes that are not permitted for the user are - silently ignored. + Set a label by name to the value 'N'. The ability to vote on all specified + labels is required. If the vote is invalid (invalid label or invalid name), + the vote is not permitted for the user, or the vote is on an outdated or + closed patch set, return an error instead of silently discarding the vote. --tag:: -t:: diff --git a/java/com/google/gerrit/pgm/MigrateToNoteDb.java b/java/com/google/gerrit/pgm/MigrateToNoteDb.java index 369d6aee1d..2340a9758e 100644 --- a/java/com/google/gerrit/pgm/MigrateToNoteDb.java +++ b/java/com/google/gerrit/pgm/MigrateToNoteDb.java @@ -20,11 +20,8 @@ import static java.util.stream.Collectors.joining; import static java.util.stream.Collectors.toList; import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.gerrit.elasticsearch.ElasticIndexModule; import com.google.gerrit.extensions.config.FactoryModule; import com.google.gerrit.lifecycle.LifecycleManager; -import com.google.gerrit.lucene.LuceneIndexModule; import com.google.gerrit.pgm.util.BatchProgramModule; import com.google.gerrit.pgm.util.RuntimeShutdown; import com.google.gerrit.pgm.util.SiteProgram; @@ -33,13 +30,12 @@ import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.change.ChangeResource; import com.google.gerrit.server.extensions.events.GitReferenceUpdated; -import com.google.gerrit.server.index.IndexModule; +import com.google.gerrit.server.index.DummyIndexModule; import com.google.gerrit.server.index.change.ChangeSchemaDefinitions; import com.google.gerrit.server.notedb.rebuild.NoteDbMigrator; import com.google.gerrit.server.schema.DataSourceType; import com.google.inject.Inject; import com.google.inject.Injector; -import com.google.inject.Module; import com.google.inject.Provider; import java.util.ArrayList; import java.util.List; @@ -194,25 +190,12 @@ public class MigrateToNoteDb extends SiteProgram { public void configure() { install(dbInjector.getInstance(BatchProgramModule.class)); bind(GitReferenceUpdated.class).toInstance(GitReferenceUpdated.DISABLED); - install(getIndexModule()); + install(new DummyIndexModule()); factory(ChangeResource.Factory.class); } }); } - private Module getIndexModule() { - switch (IndexModule.getIndexType(dbInjector)) { - case LUCENE: - return LuceneIndexModule.singleVersionWithExplicitVersions( - ImmutableMap.of(), threads, false); - case ELASTICSEARCH: - return ElasticIndexModule.singleVersionWithExplicitVersions( - ImmutableMap.of(), threads, false); - default: - throw new IllegalStateException("unsupported index.type"); - } - } - private void stop() { try { LifecycleManager m = sysManager; diff --git a/java/com/google/gerrit/sshd/BaseCommand.java b/java/com/google/gerrit/sshd/BaseCommand.java index cf54a476e0..3bf13d296f 100644 --- a/java/com/google/gerrit/sshd/BaseCommand.java +++ b/java/com/google/gerrit/sshd/BaseCommand.java @@ -16,6 +16,7 @@ package com.google.gerrit.sshd; import static java.nio.charset.StandardCharsets.UTF_8; +import com.google.common.base.Joiner; import com.google.common.util.concurrent.Atomics; import com.google.gerrit.common.Nullable; import com.google.gerrit.common.TimeUtil; @@ -111,6 +112,9 @@ public abstract class BaseCommand implements Command { /** Unparsed command line options. */ private String[] argv; + /** trimmed command line arguments. */ + private String[] trimmedArgv; + public BaseCommand() { task = Atomics.newReference(); } @@ -156,6 +160,26 @@ public abstract class BaseCommand implements Command { this.argv = argv; } + /** + * Trim the argument if it is spanning multiple lines. + * + * @return the arguments where all the multiple-line fields are trimmed. + */ + protected String[] getTrimmedArguments() { + if (trimmedArgv == null && argv != null) { + trimmedArgv = new String[argv.length]; + for (int i = 0; i < argv.length; i++) { + String arg = argv[i]; + int indexOfMultiLine = arg.indexOf("\n"); + if (indexOfMultiLine > -1) { + arg = arg.substring(0, indexOfMultiLine).concat(" [trimmed]"); + } + trimmedArgv[i] = arg; + } + } + return trimmedArgv; + } + @Override public void destroy() { Future future = task.getAndSet(null); @@ -371,8 +395,11 @@ public abstract class BaseCommand implements Command { } protected String getTaskDescription() { - StringBuilder m = new StringBuilder(); - m.append(context.getCommandLine()); + StringBuilder m = new StringBuilder(commandName); + String[] ta = getTrimmedArguments(); + if (ta != null) { + m.append(Joiner.on(" ").join(ta)); + } return m.toString(); } diff --git a/java/com/google/gerrit/sshd/SshLog.java b/java/com/google/gerrit/sshd/SshLog.java index 6465a3073a..6b43d781f3 100644 --- a/java/com/google/gerrit/sshd/SshLog.java +++ b/java/com/google/gerrit/sshd/SshLog.java @@ -14,6 +14,7 @@ package com.google.gerrit.sshd; +import com.google.common.base.Joiner; import com.google.common.collect.ListMultimap; import com.google.common.collect.MultimapBuilder; import com.google.gerrit.common.TimeUtil; @@ -282,9 +283,9 @@ class SshLog implements LifecycleListener { return "Command was already destroyed"; } StringBuilder commandName = new StringBuilder(dcmd.getCommandName()); - String[] args = dcmd.getArguments(); - for (int i = 1; i < args.length; i++) { - commandName.append(".").append(args[i]); + String[] trimmedArgs = dcmd.getTrimmedArguments(); + if (trimmedArgs != null) { + commandName.append(Joiner.on(".").join(trimmedArgs)); } return commandName.toString(); } diff --git a/java/com/google/gerrit/sshd/commands/ReviewCommand.java b/java/com/google/gerrit/sshd/commands/ReviewCommand.java index 1be32a8321..1d764b9b90 100644 --- a/java/com/google/gerrit/sshd/commands/ReviewCommand.java +++ b/java/com/google/gerrit/sshd/commands/ReviewCommand.java @@ -240,11 +240,6 @@ public class ReviewCommand extends SshCommand { } } - @Override - protected String getTaskDescription() { - return "gerrit review"; - } - private void applyReview(PatchSet patchSet, ReviewInput review) throws RestApiException { gApi.changes() .id(patchSet.getId().getParentKey().get())