This is an automated email from the ASF dual-hosted git repository.

ebakke pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git


The following commit(s) were added to refs/heads/master by this push:
     new cadff49dc7 Fix a 'Cannot call invokeAndWait from the event dispatcher 
thread' exception when calling DatabaseConnection.showConnectionDialog from the 
EDT.
cadff49dc7 is described below

commit cadff49dc7447058ca164a9b3d05107c5e02c8cd
Author: Eirik Bakke <eba...@ultorg.com>
AuthorDate: Mon Jun 5 19:14:39 2023 -0400

    Fix a 'Cannot call invokeAndWait from the event dispatcher thread' 
exception when calling DatabaseConnection.showConnectionDialog from the EDT.
---
 .../modules/db/explorer/action/ConnectAction.java  | 37 ++++++++++------------
 1 file changed, 17 insertions(+), 20 deletions(-)

diff --git 
a/ide/db/src/org/netbeans/modules/db/explorer/action/ConnectAction.java 
b/ide/db/src/org/netbeans/modules/db/explorer/action/ConnectAction.java
index bbe0f41327..ffe4ca8c53 100644
--- a/ide/db/src/org/netbeans/modules/db/explorer/action/ConnectAction.java
+++ b/ide/db/src/org/netbeans/modules/db/explorer/action/ConnectAction.java
@@ -223,27 +223,24 @@ public class ConnectAction extends AbstractAction 
implements ContextAwareAction,
 
                 dbcon.addPropertyChangeListener(connectionListener);
 
-                try {
-                    if (headless) {
-                        connectWithNewInfo(dbcon, input);
-                    } else {
-                        ActionListener actionListener = new ActionListener() {
-                            @Override
-                            public void actionPerformed(ActionEvent event) {
-                                if (event.getSource() == 
DialogDescriptor.OK_OPTION) {
-                                    connectWithNewInfo(dbcon, input);
-                                }
+                if (headless) {
+                    connectWithNewInfo(dbcon, input);
+                } else {
+                    ActionListener actionListener = new ActionListener() {
+                        @Override
+                        public void actionPerformed(ActionEvent event) {
+                            if (event.getSource() == 
DialogDescriptor.OK_OPTION) {
+                                connectWithNewInfo(dbcon, input);
                             }
-                        };
-                
-                        SwingUtilities.invokeAndWait(() -> {
-                            ConnectPanel basePanel = input.getConnectPanel();
-                            dlg = new ConnectionDialog(this, basePanel, 
basePanel.getTitle(), CONNECT_ACTION_HELPCTX, actionListener);
-                            dlg.setVisible(true);
-                        });
-                    }
-                } catch (InterruptedException | InvocationTargetException ex) {
-                    Exceptions.printStackTrace(ex);
+                        }
+                    };
+
+                    Mutex.EVENT.writeAccess((Mutex.Action<Void>) () -> {
+                        ConnectPanel basePanel = input.getConnectPanel();
+                        dlg = new ConnectionDialog(this, basePanel, 
basePanel.getTitle(), CONNECT_ACTION_HELPCTX, actionListener);
+                        dlg.setVisible(true);
+                        return null;
+                    });
                 }
                 dbcon.removeExceptionListener(excListener);
             } else { // without dialog with connection data (username, 
password), just with progress dlg


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to