You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by ma...@apache.org on 2019/04/03 17:58:10 UTC
[incubator-netbeans] branch master updated: [NETBEANS-2318] Remove
synchronized elements from SQLEditorSupport
This is an automated email from the ASF dual-hosted git repository.
matthiasblaesing pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-netbeans.git
The following commit(s) were added to refs/heads/master by this push:
new bbb4fda [NETBEANS-2318] Remove synchronized elements from SQLEditorSupport
new 3e1f8ae Merge pull request #1177 from matthiasblaesing/netbeans-2318
bbb4fda is described below
commit bbb4fdaa4f930a1acb69b39e77ca758d26f9fe64
Author: Matthias Bläsing <mb...@doppel-helix.eu>
AuthorDate: Wed Mar 27 22:11:53 2019 +0100
[NETBEANS-2318] Remove synchronized elements from SQLEditorSupport
---
.../modules/db/sql/loader/SQLCloneableEditor.java | 4 +-
.../modules/db/sql/loader/SQLEditorSupport.java | 57 ++++++++++------------
2 files changed, 28 insertions(+), 33 deletions(-)
diff --git a/ide/db.core/src/org/netbeans/modules/db/sql/loader/SQLCloneableEditor.java b/ide/db.core/src/org/netbeans/modules/db/sql/loader/SQLCloneableEditor.java
index 717ecbd..e81e054 100644
--- a/ide/db.core/src/org/netbeans/modules/db/sql/loader/SQLCloneableEditor.java
+++ b/ide/db.core/src/org/netbeans/modules/db/sql/loader/SQLCloneableEditor.java
@@ -698,7 +698,7 @@ public final class SQLCloneableEditor extends CloneableEditor implements MultiVi
@Override
public DatabaseConnection getDatabaseConnection() {
- return sqlEditorSupport().getActiveDatabaseConnection();
+ return sqlEditorSupport().getDatabaseConnection();
}
@Override
@@ -763,7 +763,7 @@ public final class SQLCloneableEditor extends CloneableEditor implements MultiVi
@Override
public String toString() {
- return "SQLExecution[support=" + sqlEditorSupport().messageName() + ", dbconn=" + sqlEditorSupport().getActiveDatabaseConnection() + "]"; // NOI18N
+ return "SQLExecution[support=" + sqlEditorSupport().messageName() + ", dbconn=" + sqlEditorSupport().getDatabaseConnection() + "]"; // NOI18N
}
private String getText(JEditorPane editorPane) {
diff --git a/ide/db.core/src/org/netbeans/modules/db/sql/loader/SQLEditorSupport.java b/ide/db.core/src/org/netbeans/modules/db/sql/loader/SQLEditorSupport.java
index 6380232..c7e245c 100644
--- a/ide/db.core/src/org/netbeans/modules/db/sql/loader/SQLEditorSupport.java
+++ b/ide/db.core/src/org/netbeans/modules/db/sql/loader/SQLEditorSupport.java
@@ -47,7 +47,6 @@ import org.netbeans.modules.db.dataview.api.DataViewPageContext;
import org.netbeans.modules.db.sql.execute.SQLExecuteHelper;
import org.netbeans.modules.db.sql.execute.SQLExecutionResult;
import org.netbeans.modules.db.sql.execute.SQLExecutionResults;
-import org.netbeans.modules.db.sql.execute.StatementInfo;
import org.openide.DialogDisplayer;
import org.openide.NotifyDescriptor;
import org.openide.awt.StatusDisplayer;
@@ -60,7 +59,6 @@ import org.openide.nodes.Node.Cookie;
import org.openide.text.CloneableEditor;
import org.openide.text.CloneableEditorSupport;
import org.openide.text.DataEditorSupport;
-import org.openide.text.Line;
import org.openide.util.*;
import org.openide.util.lookup.Lookups;
import org.openide.windows.CloneableOpenSupport;
@@ -91,16 +89,17 @@ public class SQLEditorSupport extends DataEditorSupport
private final RequestProcessor rp = new RequestProcessor("SQLExecution", 1, true); // NOI18N
// the database connection to execute against
- private DatabaseConnection dbconn;
+ private volatile DatabaseConnection dbconn;
// whether we are executing statements
- private boolean executing;
+ private volatile boolean executing;
// execution results. Not synchronized since accessed only from rp of throughput 1.
private SQLExecutionResults executionResults;
// execution logger
private SQLExecutionLoggerImpl logger;
+ private final Object loggerLock = new Object();
/**
* SaveCookie for this support instance. The cookie is adding/removing
@@ -305,15 +304,12 @@ public class SQLEditorSupport extends DataEditorSupport
sqlPropChangeSupport.removePropertyChangeListener(listener);
}
- synchronized DatabaseConnection getActiveDatabaseConnection() {
- return dbconn;
- }
-
@Override
- public synchronized void setDatabaseConnection(DatabaseConnection dbconn) {
+ public void setDatabaseConnection(DatabaseConnection dbconn) {
+ DatabaseConnection oldCon = this.dbconn;
this.dbconn = dbconn;
sqlPropChangeSupport.firePropertyChange(
- SQLExecution.PROP_DATABASE_CONNECTION, null, null);
+ SQLExecution.PROP_DATABASE_CONNECTION, oldCon, dbconn);
updateTitles();
}
@@ -372,10 +368,7 @@ public class SQLEditorSupport extends DataEditorSupport
* have to be delimited by \n.
*/
void execute(String sql, int startOffset, int endOffset, SQLCloneableEditor editor) {
- DatabaseConnection conn;
- synchronized (this) {
- conn = this.dbconn;
- }
+ DatabaseConnection conn = this.dbconn;
if (conn == null) {
return;
}
@@ -394,13 +387,14 @@ public class SQLEditorSupport extends DataEditorSupport
}
}
- synchronized boolean isExecuting() {
+ boolean isExecuting() {
return executing;
}
- private synchronized void setExecuting(boolean executing) {
+ private void setExecuting(boolean executing) {
+ boolean oldExecuting = this.executing;
this.executing = executing;
- sqlPropChangeSupport.firePropertyChange(SQLExecution.PROP_EXECUTING, null, null);
+ sqlPropChangeSupport.firePropertyChange(SQLExecution.PROP_EXECUTING, oldExecuting, this.executing);
}
private void setResultsToEditors(final SQLExecutionResults results, final SQLCloneableEditor editor) {
@@ -472,24 +466,25 @@ public class SQLEditorSupport extends DataEditorSupport
}
private SQLExecutionLoggerImpl createLogger() {
- closeLogger();
-
- String loggerDisplayName;
- if (isConsole()) {
- loggerDisplayName = getDataObject().getName();
- } else {
- loggerDisplayName = getDataObject().getNodeDelegate().getDisplayName();
- }
-
- synchronized (this) {
- logger = new SQLExecutionLoggerImpl(loggerDisplayName, this);
+ synchronized (loggerLock) {
+ closeLogger();
+
+ String loggerDisplayName;
+ if (isConsole()) {
+ loggerDisplayName = getDataObject().getName();
+ } else {
+ loggerDisplayName = getDataObject().getNodeDelegate().getDisplayName();
+ }
+
+ return new SQLExecutionLoggerImpl(loggerDisplayName, this);
}
- return logger;
}
private synchronized void closeLogger() {
- if (logger != null) {
- logger.close();
+ synchronized (loggerLock) {
+ if (logger != null) {
+ logger.close();
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists