diff options
Diffstat (limited to 'java/src/IceGridGUI/Coordinator.java')
-rw-r--r-- | java/src/IceGridGUI/Coordinator.java | 54 |
1 files changed, 35 insertions, 19 deletions
diff --git a/java/src/IceGridGUI/Coordinator.java b/java/src/IceGridGUI/Coordinator.java index 18851899330..17d1c4876a2 100644 --- a/java/src/IceGridGUI/Coordinator.java +++ b/java/src/IceGridGUI/Coordinator.java @@ -2235,27 +2235,43 @@ public class Coordinator } else { - SwingUtilities.invokeLater(new Runnable() + while(true) + { + try { - @Override - public void run() - { - if(JOptionPane.showConfirmDialog( - parent, - "Unable to connect to the Master Registry:\n " + e.toString() - + "\n\nDo you want to connect to a Slave Registry?", - "Cannot connect to Master Registry", - JOptionPane.YES_NO_OPTION, - JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION) - { - cb.setRegistry(cb.getCurrentRegistry()); - } - else + SwingUtilities.invokeAndWait(new Runnable() { - cb.loginFailed(); - } - } - }); + @Override + public void run() + { + if(JOptionPane.showConfirmDialog( + parent, + "Unable to connect to the Master Registry:\n " + e.toString() + + "\n\nDo you want to connect to a Slave Registry?", + "Cannot connect to Master Registry", + JOptionPane.YES_NO_OPTION, + JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION) + { + cb.setRegistry(cb.getCurrentRegistry()); + } + else + { + cb.loginFailed(); + } + } + }); + break; + } + catch(java.lang.InterruptedException ex) + { + // Ignore and retry + } + catch(java.lang.reflect.InvocationTargetException ex) + { + cb.loginFailed(); + break; + } + } if(cb.failed()) { return; |