So, you say you see "?" instead of characters in the history of your clients, but only after the restart of the server? History is stored by a client locally (at least in Spark), so it can't change after the server reboot. Unless you are not talking about the history, but about the actual messages coming. Then i still don't understand. So it works ok for some time and then after you reboot the server it starts to show "?" when messages comes? So, after some time it starts to show characters normally again? Or does it show "?" all the time now after that kill of the server? If so, there still can be some corruption and database is not saving these messages in unicode.
I'm not a Java guy either, but this java.lang error might have no relation to the issue. MySQL is running on the same machine? So you have a backup of DB before the kill? Even if it's old, you can stil ltry restoring it back to test if it works ok, to find out if it is a DB corruption of some sort.
Any chance to get the answer from the developers?
Close to zero. There are no active developers here, just a few volunteers doing some stuff in their spare time.