diff --git a/WORKSPACE b/WORKSPACE index ca888bc89d..c1d7213250 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -574,8 +574,8 @@ maven_jar( maven_jar( name = "dropwizard-core", - artifact = "io.dropwizard.metrics:metrics-core:4.0.2", - sha1 = "ec9878842d510cabd6bd6a9da1bebae1ae0cd199", + artifact = "io.dropwizard.metrics:metrics-core:4.0.3", + sha1 = "bb562ee73f740bb6b2bf7955f97be6b870d9e9f0", ) # When updading Bouncy Castle, also update it in bazlets. @@ -904,8 +904,8 @@ maven_jar( maven_jar( name = "elasticsearch-rest-client", - artifact = "org.elasticsearch.client:elasticsearch-rest-client:6.3.1", - sha1 = "99de036a2cd99dbecec1cc84f5d0e19032e74fa7", + artifact = "org.elasticsearch.client:elasticsearch-rest-client:6.3.2", + sha1 = "2077ea5f00fdd2d6af85223b730ba8047303297f", ) JACKSON_VERSION = "2.8.9" diff --git a/java/com/google/gerrit/server/ChangeFinder.java b/java/com/google/gerrit/server/ChangeFinder.java index 677b091cc3..fd6ae1ce25 100644 --- a/java/com/google/gerrit/server/ChangeFinder.java +++ b/java/com/google/gerrit/server/ChangeFinder.java @@ -21,6 +21,7 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Sets; import com.google.common.primitives.Ints; import com.google.gerrit.extensions.restapi.DeprecatedIdentifierException; +import com.google.gerrit.extensions.restapi.Url; import com.google.gerrit.index.IndexConfig; import com.google.gerrit.metrics.Counter1; import com.google.gerrit.metrics.Description; @@ -235,7 +236,7 @@ public class ChangeFinder { InternalChangeQuery query = queryProvider.get().noFields(); List r = query.byLegacyChangeId(id); if (r.size() == 1) { - changeIdProjectCache.put(id, r.get(0).project().get()); + changeIdProjectCache.put(id, Url.encode(r.get(0).project().get())); } return asChangeNotes(r); } diff --git a/java/com/google/gerrit/server/index/change/StalenessChecker.java b/java/com/google/gerrit/server/index/change/StalenessChecker.java index 0508b60d62..b32ca8c5ae 100644 --- a/java/com/google/gerrit/server/index/change/StalenessChecker.java +++ b/java/com/google/gerrit/server/index/change/StalenessChecker.java @@ -30,6 +30,7 @@ import com.google.common.collect.Sets; import com.google.common.collect.Streams; import com.google.common.flogger.FluentLogger; import com.google.gerrit.common.Nullable; +import com.google.gerrit.extensions.restapi.Url; import com.google.gerrit.index.IndexConfig; import com.google.gerrit.index.RefState; import com.google.gerrit.reviewdb.client.Change; @@ -176,7 +177,8 @@ public class StalenessChecker { String s = new String(b, UTF_8); List parts = Splitter.on(':').splitToList(s); RefStatePattern.check(parts.size() == 2, s); - result.put(new Project.NameKey(parts.get(0)), RefStatePattern.create(parts.get(1))); + result.put( + new Project.NameKey(Url.decode(parts.get(0))), RefStatePattern.create(parts.get(1))); } return result; } diff --git a/java/com/google/gerrit/server/schema/DataSourceProvider.java b/java/com/google/gerrit/server/schema/DataSourceProvider.java index 98acc641b8..8021a542eb 100644 --- a/java/com/google/gerrit/server/schema/DataSourceProvider.java +++ b/java/com/google/gerrit/server/schema/DataSourceProvider.java @@ -141,6 +141,8 @@ public class DataSourceProvider implements Provider, LifecycleListen long evictIdleTimeMs = 1000L * 60; ds.setMinEvictableIdleTimeMillis(evictIdleTimeMs); ds.setTimeBetweenEvictionRunsMillis(evictIdleTimeMs / 2); + ds.setTestOnBorrow(true); + ds.setTestOnReturn(true); ds.setValidationQuery(dst.getValidationQuery()); ds.setValidationQueryTimeout(5); exportPoolMetrics(ds); diff --git a/javatests/com/google/gerrit/elasticsearch/ElasticContainer.java b/javatests/com/google/gerrit/elasticsearch/ElasticContainer.java index bdad355d21..f5614b45a7 100644 --- a/javatests/com/google/gerrit/elasticsearch/ElasticContainer.java +++ b/javatests/com/google/gerrit/elasticsearch/ElasticContainer.java @@ -49,7 +49,7 @@ public class ElasticContainer> extends Gener case V6_2: return "docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.4"; case V6_3: - return "docker.elastic.co/elasticsearch/elasticsearch-oss:6.3.1"; + return "docker.elastic.co/elasticsearch/elasticsearch-oss:6.3.2"; } throw new IllegalStateException("No tests for version: " + version.name()); } diff --git a/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java b/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java index d4d4464268..82c9147d49 100644 --- a/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java +++ b/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java @@ -2985,6 +2985,13 @@ public abstract class AbstractQueryChangesTest extends GerritServerTests { assertQuery(query); } + @Test + public void byUrlEncodedProject() throws Exception { + TestRepository repo = createProject("repo+foo"); + Change change = insert(repo, newChange(repo)); + assertQuery("project:repo+foo", change); + } + protected ChangeInserter newChange(TestRepository repo) throws Exception { return newChange(repo, null, null, null, null, false); } diff --git a/resources/com/google/gerrit/httpd/raw/PolyGerritIndexHtml.soy b/resources/com/google/gerrit/httpd/raw/PolyGerritIndexHtml.soy index 3dd636032d..7a493aa45c 100644 --- a/resources/com/google/gerrit/httpd/raw/PolyGerritIndexHtml.soy +++ b/resources/com/google/gerrit/httpd/raw/PolyGerritIndexHtml.soy @@ -46,12 +46,12 @@ // RobotoMono fonts are used in styles/fonts.css // @see https://github.com/w3c/preload/issues/32 regarding crossorigin - {\n} - {\n} - {\n} - {\n} - {\n} - {\n} + {\n} + {\n} + {\n} + {\n} + {\n} + {\n} {\n} {\n} {\n}