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.

