From 053853b6a3929c89a78fdda8b8b59cdc10abc33c Mon Sep 17 00:00:00 2001 From: Edwin Kempin Date: Fri, 22 Nov 2013 20:40:07 +0100 Subject: [PATCH] Quote topic name in same topic query Topic names may contain whitespace. This is why we need to quote the topic name in the query. Change-Id: I0ce6a8ca57cec987ddeeaeed71cee757dcb9d17b Signed-off-by: Edwin Kempin --- .../java/com/google/gerrit/common/PageLinks.java | 4 ++++ .../gerrit/client/change/RelatedChanges.java | 16 +++++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/gerrit-common/src/main/java/com/google/gerrit/common/PageLinks.java b/gerrit-common/src/main/java/com/google/gerrit/common/PageLinks.java index bd5816abbc..55e55e4f32 100644 --- a/gerrit-common/src/main/java/com/google/gerrit/common/PageLinks.java +++ b/gerrit-common/src/main/java/com/google/gerrit/common/PageLinks.java @@ -127,6 +127,10 @@ public class PageLinks { } } + public static String op(String op, int value) { + return op + ":" + value; + } + public static String op(String op, String value) { if (isSingleWord(value)) { return op + ":" + value; diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RelatedChanges.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RelatedChanges.java index 33eb6e3f27..e68c402a60 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RelatedChanges.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RelatedChanges.java @@ -14,6 +14,8 @@ package com.google.gerrit.client.change; +import static com.google.gerrit.common.PageLinks.op; + import com.google.gerrit.client.Gerrit; import com.google.gerrit.client.changes.ChangeApi; import com.google.gerrit.client.changes.ChangeInfo; @@ -97,9 +99,9 @@ class RelatedChanges extends TabPanel { } StringBuilder cherryPicksQuery = new StringBuilder(); - cherryPicksQuery.append(" project:").append(info.project()); - cherryPicksQuery.append(" change:").append(info.change_id()); - cherryPicksQuery.append(" -change:").append(info.legacy_id().get()); + cherryPicksQuery.append(op("project", info.project())); + cherryPicksQuery.append(" ").append(op("change", info.change_id())); + cherryPicksQuery.append(" ").append(op("-change", info.legacy_id().get())); ChangeList.query(cherryPicksQuery.toString(), EnumSet.of(ListChangesOption.CURRENT_REVISION, ListChangesOption.CURRENT_COMMIT), new AsyncCallback() { @@ -133,9 +135,9 @@ class RelatedChanges extends TabPanel { if (info.topic() != null && !"".equals(info.topic())) { StringBuilder topicQuery = new StringBuilder(); topicQuery.append("status:open"); - topicQuery.append(" project:").append(info.project()); - topicQuery.append(" branch:").append(info.branch()); - topicQuery.append(" topic:").append(info.topic()); + topicQuery.append(" ").append(op("project", info.project())); + topicQuery.append(" ").append(op("branch", info.branch())); + topicQuery.append(" ").append(op("topic", info.topic())); ChangeList.query(topicQuery.toString(), EnumSet.of(ListChangesOption.CURRENT_REVISION, ListChangesOption.CURRENT_COMMIT), new AsyncCallback() { @@ -189,7 +191,7 @@ class RelatedChanges extends TabPanel { StringBuilder conflictsQuery = new StringBuilder(); conflictsQuery.append("status:open"); - conflictsQuery.append(" conflicts:").append(info.legacy_id().get()); + conflictsQuery.append(" ").append(op("conflicts", info.legacy_id().get())); conflictsQuery.append(" -age:1month"); ChangeList.query(conflictsQuery.toString(), EnumSet.of(ListChangesOption.CURRENT_REVISION, ListChangesOption.CURRENT_COMMIT),