Going through the servlet config is kind of pointless when there's almost
always a one to one connection between a DispatcherServlet and an Application.
Said version of HSQLDB freaks out if primary keys are included in the UNIQUE
clause when creating a table. They're unique by definition, and the HSQLDB
authors are clearly strong believers in DRY. So much so that RY is considered
an error in this case.
This adds an overload. A better way might be to configure some sort of builder
and finish with request(), but that's a larger refactor and if I was doing
that there'd be plenty to fix.
ArrayList and friends explicitly call equals() on the supplied object with the
array object as the argument, rather than the other way around. This allows one
to, for example, pass in some sort of Key object that can compare itself for
equality against a list of KeyedValue objects.
This sort of delicate dance around the equality contract is dangerous, but we
should let the caller decide whether they wish to dance with the devil.
Per the wailing and gnashing of teeth in response to 7e51d4c and 7bb7ee2,
I'll do the extra legwork to keep my bits in a List despite java handing
them to me as an array.
In AuditLogger, we roll over the audit log on the Interval timer thread, which
is dubious, because it could block, but introducing an Invoker thread here
would require a ticket on a boat that sailed a long time ago. In the case of
SerialExecutor, we're just doing Thread.kill() on the Interval timer thread, so
that's fast enough.
If no runqueue is supplied on which to prune sessions, we don't schedule a
session pruner, rather than scheduling a long running database action on the
Interval timer thread, thereby booching all other Intervals.
run on the interval timer thread, rather than allowing that to be the default
behavior if they forget to supply a RunQueue to the constructor.
Running on the interval timer thread is only safe if you know your interval
will complete very quickly, because you'll delay the firing of all other
intervals until your interval finishes. This is almost never what you want.