I see what you mean. My intent was only to retry if the `SocketException` with the specific message is thrown; if any other exception occurs when starting HSQLDB I was just going to throw it right away without retrying. If we move the throwing logic after the `while` then we'll retry multiple times regardless of the exception thrown.

Should we retry the HSQLDB startup regardless of the error thrown? Another option is to introduce a boolean that will break us out of the loop if a different exception is thrown. I actually tried this initially but it felt too complex to me.