= Release notes for Gerrit 2.8.5

Download:
link:https://www.gerritcodereview.com/download/gerrit-2.8.5.war[
https://www.gerritcodereview.com/download/gerrit-2.8.5.war]

== Schema Changes and Upgrades


* There are no schema changes from link:ReleaseNotes-2.8.4.html[2.8.4].

* SSHD is updated to version 0.11.0.
+
See the 'ssh' section of 'Bug Fixes' below for details.

* Bouncycastle is updated to version 1.49.
+
*WARNING:* Gerrit is not shipped with Bouncycastle included. To get the
updated library files, the site must be updated:
+
----
  java -jar gerrit.war init -d site_path
----

== Bug Fixes


=== Secondary Index


* Fix deadlocks on index shutdown.


=== Change Screen


* Only permit current patch set to edit the commit message.
+
Do not allow users to replace a more recent patch set with an older
patch set when there is a race between the web UI and the command
line git client.

* Prevent draft changes from being abandoned.
+
When a draft change was abandoned it was published to all
users by setting the status to ABANDONED.  Restoring the change
effectively published the change, as the status was set to NEW.

* Don't show the submit button for draft patch sets.
+
The button was enabled for all open changes, but if the patch set
was a draft, pressing it resulted in an error.

* Only reset the commit message text on cancel.
+
Allow the user to begin editing the commit message, dismiss the
box by clicking outside of it (e.g. to copy part of a file name
from the Files table), and then re-open the current draft text
without resetting the box.
+
Only reset the box when the user explicitly clicks Cancel.

* Fix failure to load side-by-side diff due to "ISE EditIterator out of bounds"
error.

=== ssh

* Upgrade SSHD to version 0.11.0.
+
Fixes link:https://code.google.com/p/gerrit/issues/detail?id=2406[Issue 2406]:
"git clone" hangs after 100% resolving deltas with git over SSH.
+
Fixes a number of other issues including a
link:https://issues.apache.org/jira/browse/SSHD-307[null pointer exception]
that could cause ssh commands to hang.

* Upgrade bouncycastle to version 1.49.
+
Required by the SSHD upgrade.

* Re-enable nio2 backend.
+
The nio2 backend was disabled in Gerrit version 2.8.4 because of a
link:https://issues.apache.org/jira/browse/SSHD-252[bug in SSHD].  That bug
was fixed in SSHD version 0.10.0, so now we can re-enable nio2.

=== Misc


* Keep old timestamps during data migration.
+
Migrating the change database through schema 77, which was introduced in
Gerrit 2.6, was causing patch set approval timestamps to be changed.

* link:https://code.google.com/p/gerrit/issues/detail?id=2607[Issue 2607]:
Fix incorrect "commit already exists (in the project)" error.

* link:https://code.google.com/p/gerrit/issues/detail?id=2569[Issue 2569]:
Enable automatic close changes on `refs/meta/config`.
+
Changes pushed for review on `refs/meta/config` and then force pushed
into the repository were not being automatically closed.

* Do not refresh group list if filter did not change.
+
The group list was being refreshed on every key event even if the
filter did not change, e.g. moving the cursor inside the text entry was
causing the list to update unnecessarily.

* Paginate the group list screen.
+
The group list screen now uses pagination. The number of groups displayed is
determined by the 'Maximum Page Size' user preference.
+
Option 'S' is added to the groups REST API to support query offset.

