Now that I’m done (for now) fixing list bridge problems, I’m turning my attention to the 3.1.15 release. We have quite a few bug fixes queued up (mainly thanks to George) which I need to go through.
Last night, I dealt with a bunch of new bug reports which were duplicates of common bugs which aren’t our fault. Bug 2694 is one such bug. It’s something which happens when a Windows user upgrades Java without rebooting afterwards, and then tries to run VASSAL. It’s not our fault that the user doesn’t reboot after upgrading—the upgrade wizard does say you should—and there’s nothing we can do, so far as I know right now, to test for this condition before the UnsatisfiedLinkError occurs. However, once it’s happened, this particular problem has a unique stack trace so is trivial to identify. This made me think: We could add handlers for bugs like this to the UncaughtExceptionHandler. Instead of showing the user a bug dialog, we could show a dialog telling them what the problem is (you need to reboot!).
So, I was thinking of what an interface for this should look like:
public interface BugHandler {
public boolean accept(Throwable thrown);
public void handle(Throwable thrown);
}
Then, the UncaughtExceptionHandler has a List of BugHandlers, the last of which accepts everything and throws up the bug dialog.
I think this will help reduce the number of bug reports we get, as well as improve the user experience.
Thoughts?