Merge "Merge branch 'stable-2.11'"
diff --git a/Documentation/config-gerrit.txt b/Documentation/config-gerrit.txt
index b3e3bc0..95b6717 100644
--- a/Documentation/config-gerrit.txt
+++ b/Documentation/config-gerrit.txt
@@ -2196,8 +2196,8 @@
 Number of threads to use for indexing in background operations, such as
 online schema upgrades.
 +
-If not set or set to a negative value, defaults to logical number of CPU
-cores as returned by the JVM (unless
+If not set or set to a negative value, defaults to the number of logical
+CPUs as returned by the JVM (unless
 link:#changeMerge.threadPoolSize[changeMerge.threadPoolSize] is set).
 
 [[index.onlineUpgrade]]index.onlineUpgrade::
diff --git a/ReleaseNotes/ReleaseNotes-2.11.1.txt b/ReleaseNotes/ReleaseNotes-2.11.1.txt
index eab6d60..427f422 100644
--- a/ReleaseNotes/ReleaseNotes-2.11.1.txt
+++ b/ReleaseNotes/ReleaseNotes-2.11.1.txt
@@ -41,7 +41,7 @@
 the target branch.
 +
 Now, instead of indexing interactively, it falls back to a batch thread pool
-with the logical number of available CPUs.
+with the number of available logical CPUs.
 
 * Reduce unnecessary database access when queryng changes.
 +
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java
index d97634f..4133c13 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java
@@ -379,7 +379,7 @@
     patchSetsText.setInnerText(Resources.M.patchSets(
         currentlyViewedPatchSet, currentPatchSet));
     patchSetsAction = new PatchSetsAction(
-        info.legacyId(), revision,
+        info.legacyId(), revision, edit,
         style, headerLine, patchSets);
 
     RevisionInfo revInfo = info.revision(revision);
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/PatchSetsAction.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/PatchSetsAction.java
index 49cbd04..3842ee6 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/PatchSetsAction.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/PatchSetsAction.java
@@ -14,6 +14,7 @@
 
 package com.google.gerrit.client.change;
 
+import com.google.gerrit.client.changes.ChangeInfo.EditInfo;
 import com.google.gerrit.reviewdb.client.Change;
 import com.google.gwt.user.client.ui.UIObject;
 import com.google.gwt.user.client.ui.Widget;
@@ -24,11 +25,12 @@
   PatchSetsAction(
       Change.Id changeId,
       String revision,
+      EditInfo edit,
       ChangeScreen.Style style,
       UIObject relativeTo,
       Widget downloadButton) {
     super(style, relativeTo, downloadButton);
-    this.revisionBox = new PatchSetsBox(changeId, revision);
+    this.revisionBox = new PatchSetsBox(changeId, revision, edit);
   }
 
   @Override
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/PatchSetsBox.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/PatchSetsBox.java
index f513356..f3ab35e 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/PatchSetsBox.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/PatchSetsBox.java
@@ -22,8 +22,6 @@
 import com.google.gerrit.client.changes.ChangeInfo.EditInfo;
 import com.google.gerrit.client.changes.ChangeInfo.RevisionInfo;
 import com.google.gerrit.client.changes.ChangeList;
-import com.google.gerrit.client.rpc.CallbackGroup;
-import com.google.gerrit.client.rpc.GerritCallback;
 import com.google.gerrit.client.rpc.NativeMap;
 import com.google.gerrit.client.rpc.Natives;
 import com.google.gerrit.client.rpc.RestApi;
@@ -60,7 +58,6 @@
 
   private static final String OPEN;
   private static final HyperlinkImpl link = GWT.create(HyperlinkImpl.class);
-  private EditInfo edit;
 
   static {
     OPEN = DOM.createUniqueId().replace('-', '_');
@@ -105,40 +102,29 @@
 
   private final Change.Id changeId;
   private final String revision;
+  private final EditInfo edit;
   private boolean loaded;
   private JsArray<RevisionInfo> revisions;
 
   @UiField FlexTable table;
   @UiField Style style;
 
-  PatchSetsBox(Change.Id changeId, String revision) {
+  PatchSetsBox(Change.Id changeId, String revision, EditInfo edit) {
     this.changeId = changeId;
     this.revision = revision;
+    this.edit = edit;
     initWidget(uiBinder.createAndBindUi(this));
   }
 
   @Override
   protected void onLoad() {
     if (!loaded) {
-      CallbackGroup group = new CallbackGroup();
-      if (Gerrit.isSignedIn()) {
-        // TODO(davido): It shouldn't be necessary to make this call.
-        // PatchSetsBox is constructed via PatchSetsAction which is
-        // only initialized by CS2 after loading the EditInfo in that path.
-        ChangeApi.edit(changeId.get(), group.add(
-            new GerritCallback<EditInfo>() {
-              @Override
-              public void onSuccess(EditInfo result) {
-                edit = result;
-              }
-            }));
-      }
       RestApi call = ChangeApi.detail(changeId.get());
       ChangeList.addOptions(call, EnumSet.of(
           ListChangesOption.ALL_COMMITS,
           ListChangesOption.ALL_REVISIONS,
           ListChangesOption.DRAFT_COMMENTS));
-      call.get(group.addFinal(new AsyncCallback<ChangeInfo>() {
+      call.get(new AsyncCallback<ChangeInfo>() {
         @Override
         public void onSuccess(ChangeInfo result) {
           if (edit != null) {
@@ -152,7 +138,7 @@
         @Override
         public void onFailure(Throwable caught) {
         }
-      }));
+      });
     }
   }
 
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditScreen.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditScreen.ui.xml
index f68d14a..a82dc49 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditScreen.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditScreen.ui.xml
@@ -17,12 +17,18 @@
 <ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
     xmlns:g='urn:import:com.google.gwt.user.client.ui'>
   <ui:style gss='false'>
+    @external .CodeMirror, .CodeMirror-cursor;
+
     .header {
       position: relative;
       height: 16px;
       line-height: 16px;
     }
 
+    .header .CodeMirror div.CodeMirror-cursor {
+      border-left: 2px solid black;
+    }
+
     .headerLine {
       background-color: #f7f7f7;
       border-bottom: 1px solid #ddd;