Index: GemPanel.java =================================================================== RCS file: /cvs/ruby/platform/src/org/netbeans/modules/ruby/platform/gems/GemPanel.java,v --- GemPanel.java 16 Nov 2007 15:04:51 -0000 1.2 +++ GemPanel.java 26 Nov 2007 12:43:46 -0000 @@ -55,6 +55,7 @@ import javax.swing.JTextField; import javax.swing.JTextPane; import javax.swing.ListSelectionModel; +import javax.swing.SwingUtilities; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import org.netbeans.api.options.OptionsDisplayer; @@ -379,11 +380,15 @@ if (updatedList.getSelectedIndex() != -1) { updateGemDescription(updatedDesc, null); } - updatedProgress.setVisible(true); - updatedProgressLabel.setVisible(true); - refreshInstalled(false); - refreshNew(false); - refreshGemLists(); + SwingUtilities.invokeLater(new Runnable() { + public void run() { + updatedProgress.setVisible(true); + updatedProgressLabel.setVisible(true); + refreshInstalled(false); + refreshNew(false); + refreshGemLists(); + } + }); } // //GEN-BEGIN:initComponents @@ -898,14 +903,16 @@ } // Recompute lists - boolean done = updateGems(); - - if (!done) { - // Just filter - updateList(tab, false); - } else if (tab == INSTALLED_TAB_INDEX) { - updateList(tab, true); - } + SwingUtilities.invokeLater(new Runnable() { + public void run() { + if (updateGems()) { + // Just filter + updateList(tab, false); + } else if (tab == INSTALLED_TAB_INDEX) { + updateList(tab, true); + } + } + }); } } }; @@ -933,13 +940,17 @@ } // Recompute lists - updateGems(); - updateList(INSTALLED_TAB_INDEX, true); + SwingUtilities.invokeLater(new Runnable() { + public void run() { + updateGems(); + updateList(INSTALLED_TAB_INDEX, true); + if (remoteFailure != null && !fetchingLocal) { + // Update the local list which shouldn't have any errors + refreshInstalled(true); + } + } + }); - if (remoteFailure != null && !fetchingLocal) { - // Update the local list which shouldn't have any errors - refreshInstalled(true); - } } } };