The Java Admin Client is a Swing application, and as such should follow the Swing guidelines when using multiple threads to update UI components. See - https://docs.oracle.com/javase/tutorial/uiswing/concurrency/index.html
Therefore we should modify the existing background tasks that use Runnable's and calls to InteractiveClient#newClientThread(String, Runnable) with instances of SwingWorker.
This also has the benefit of giving us the facility to incrementally update the UI as chunks of results become available.
For an example of how to do this, see - e3c834e
The Java Admin Client is a Swing application, and as such should follow the Swing guidelines when using multiple threads to update UI components. See - https://docs.oracle.com/javase/tutorial/uiswing/concurrency/index.html
Therefore we should modify the existing background tasks that use Runnable's and calls to
InteractiveClient#newClientThread(String, Runnable)with instances ofSwingWorker.This also has the benefit of giving us the facility to incrementally update the UI as chunks of results become available.
For an example of how to do this, see - e3c834e