It seems to me this may be a cleanup issue, and I'd suggest
modifying the following code so that JPanel mainPanel is given
global scope, instead of local scope, so that dispose() can
later be called on this Swing component within IStrategy.onStop().
That's my guess why it is hanging on inadequate cleanup of
prior instance, I haven't actually tested whether that's the problem.
HyperScalper
private void placeControlsOnTab(IContext context) {
JPanel mainPanel = userInterface.getBottomTab(TAB_NAME);
mainPanel.setLayout(new BorderLayout());
tableModel = new OrderTableModel();
table = new JTable(tableModel);
mainPanel.add(new JScrollPane(table), BorderLayout.CENTER);
}