Index: WorkspaceContext.java =================================================================== RCS file: /cvs/core/src/org/netbeans/core/windows/nodes/Attic/WorkspaceContext.java,v retrieving revision 1.29 diff -c -r1.29 WorkspaceContext.java *** WorkspaceContext.java 3 Dec 2002 14:10:56 -0000 1.29 --- WorkspaceContext.java 3 Jun 2003 13:33:02 -0000 *************** *** 20,25 **** --- 20,26 ---- import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.util.*; + import javax.swing.SwingUtilities; import org.openide.util.datatransfer.PasteType; import org.openide.awt.Actions; *************** *** 380,393 **** public void propertyChange (PropertyChangeEvent che) { if (che.getPropertyName().equals (Workspace.PROP_MODES)) { ! Mode[] modes = (Mode[])che.getNewValue(); ! if (modes == null) { ! //display only visible modes in tree ! setKeys (getVisibleModes(workspace)); ! //setKeys (workspace.getModes()); ! } else { ! setKeys(modes); ! } } if (che.getPropertyName().equals (Workspace.PROP_NAME)) { --- 381,400 ---- public void propertyChange (PropertyChangeEvent che) { if (che.getPropertyName().equals (Workspace.PROP_MODES)) { ! //Bugfix #31596: Process asynchronously to avoid deadlock ! final PropertyChangeEvent cheFinal = che; ! SwingUtilities.invokeLater(new Runnable() { ! public void run () { ! Mode[] modes = (Mode[])cheFinal.getNewValue(); ! if (modes == null) { ! //display only visible modes in tree ! setKeys (getVisibleModes(workspace)); ! //setKeys (workspace.getModes()); ! } else { ! setKeys(modes); ! } ! } ! }); } if (che.getPropertyName().equals (Workspace.PROP_NAME)) {