Set hsqldb.log_size to 20 MB (default is 200 MB) and this is very very big. A checkpoint will take ages to complete - see http://www.hsqldb.org/doc/guide/ch04.html
Set SET WRITE DELAY to 100 ms to get a 99.9999% according to http://www.hsqldb.org/doc/guide/ch09.html#set_write_delay-section
Make sure that server-properties.jsp returns an error if updating of the properties fail, current code is:
82 JiveGlobals.setProperty(propName, propValue);
Verify that "openfired stop" on linux and "stop Openfire" on Windows stop Openfire in a clean way, http://www.igniterealtime.org/forum/thread.jspa?threadID=27303&tstart=0 reports that this is not the case while it works for me on linux.
"@Make sure that server-properties.jsp returns an error if updating of the properties fail" - the current code uses some logic to check the values before it tries to insert them, so this should be no issue.
@"Verify that "openfired stop" ... stop Openfire in a clean way" - the thread does no longer exist and there are no new threads with such problems.
==> I'd like to close it for 3.7.0 with the HSQLDB fixes.
Feel free to create new issues for "server-properties.jsp" or "stop" if these are still issues.