Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
61a3ad5
Additional options:
spuliaiev-sfdc Aug 12, 2020
c0dfb13
Additional options:
spuliaiev-sfdc Aug 14, 2020
e706a50
Additional options:
spuliaiev-sfdc Aug 20, 2020
a780842
Additional options:
spuliaiev-sfdc Aug 20, 2020
4862b13
Additional options:
spuliaiev-sfdc Aug 20, 2020
06cb00c
Upgrade to API 50.0
spuliaiev-sfdc Sep 1, 2020
5763f71
CONNECT command to easily change the org
spuliaiev-sfdc Oct 5, 2020
9c81b6e
CONNECT command to easily change the org
spuliaiev-sfdc Oct 5, 2020
30bc4f8
CONNECT command to easily change the org
spuliaiev-sfdc Oct 5, 2020
4ba529d
1) CONNECT command to easily change the org + URL to connect to other…
spuliaiev-sfdc Oct 21, 2020
37723c3
Merge branch 'master' into master
spuliaiev-sfdc Oct 30, 2020
e344e22
Sync up with upstream repository PRs
spuliaiev-sfdc Oct 29, 2020
d040480
Cleanup from Insert Query analyser
spuliaiev-sfdc Oct 29, 2020
e820a5a
1) Fields for SubSelects aliases
spuliaiev-sfdc Oct 30, 2020
2bed34d
1) Fields for SubSelects aliases
spuliaiev-sfdc Nov 9, 2020
ffb9770
replace the jar file with new version
spuliaiev-sfdc Nov 9, 2020
e4b4f51
Metadata versions fix and test
spuliaiev-sfdc Dec 1, 2020
794c72b
Main Class
spuliaiev-sfdc Dec 1, 2020
8b5a613
Main Class
spuliaiev-sfdc Dec 15, 2020
283b5b6
Updated the force-partner-api jar
spuliaiev-sfdc Dec 17, 2020
de8a12f
Updated the force-partner-api jar
spuliaiev-sfdc Dec 17, 2020
a450de7
Updated the force-partner-api jar to 51.0.0
spuliaiev-sfdc Jan 12, 2021
c76495d
CONNECT to a different host
spuliaiev-sfdc Jan 28, 2021
fd824d4
CONNECT to a different host
spuliaiev-sfdc Jan 28, 2021
7f470a0
CONNECT to a different host
spuliaiev-sfdc Feb 1, 2021
9be059d
CONNECT command parsing fix and tests
spuliaiev-sfdc Feb 10, 2021
968be5f
CONNECT command parsing fix and tests
spuliaiev-sfdc Feb 10, 2021
3c50394
CONNECT command parsing fix and tests
spuliaiev-sfdc Feb 10, 2021
db74256
CONNECT command parsing fix and tests
spuliaiev-sfdc Feb 10, 2021
5818513
Demo video
spuliaiev-sfdc Feb 11, 2021
7ff7b2a
Update README.md
spuliaiev-sfdc Feb 11, 2021
f808baa
cleanup
spuliaiev-sfdc Mar 1, 2021
a454e08
Merge remote-tracking branch 'upstream/master' into master-upstream
spuliaiev-sfdc Mar 1, 2021
d0e1eb9
remove the connectivity test
spuliaiev-sfdc Mar 23, 2021
7e6891d
insert
spuliaiev-sfdc Mar 23, 2021
886f266
update query analyser
spuliaiev-sfdc Mar 24, 2021
14163fc
update query analyser
spuliaiev-sfdc Mar 24, 2021
1e1cb7b
Merge remote-tracking branch 'origin/insert_Parser' into insert_Parser
spuliaiev-sfdc Mar 24, 2021
7b82d08
Insert/Update query analyser
spuliaiev-sfdc May 8, 2021
56269ca
Security Request - bump version of xstream to 1.4.16
spuliaiev-sfdc May 8, 2021
ec10192
Security Request - bump version of xstream to 1.4.16
spuliaiev-sfdc May 8, 2021
2b054fd
Merge remote-tracking branch 'upstream/master' into master-upstream
spuliaiev-sfdc May 8, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,6 @@
*.log
target
.metadata
/node_modules/
/package-lock.json
/sf-jdbc-driver/src/test/java/com/ascendix/jdbc/salesforce/ForceDriverConnectivityTest.java
169 changes: 145 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,90 @@
# sforce-jdbc [![Build Status](https://api.travis-ci.org/ascendix/salesforce-jdbc.svg?branch=master)](https://travis-ci.org/ascendix/salesforce-jdbc) [![Build Status](https://sonarcloud.io/api/project_badges/measure?project=com.ascendix.salesforce%3Asalesforce-jdbc&metric=alert_status)](https://sonarcloud.io/dashboard?id=com.ascendix.salesforce%3Asalesforce-jdbc)
Salesforce JDBC driver allows Java programs to connect to Salesforce data services using standard, database independent Java code. It is an open source JDBC driver written in Pure Java, and communicates over SOAP/HTTP(S) protocol.

# sforce-jdbc
Salesforce JDBC driver allows Java programs to connect to a Salesforce data services using standard, database independent Java code. Is an open source JDBC driver written in Pure Java,
and communicates over SOAP/HTTP(S) protocol.
The main purpose of the driver is to retrieve (only) data from Salesforce services for data analysis. Primary target platform for the driver usage is Eclipse BIRT engine.

The original Git repository for this driver is [here](https://github.com/ascendix/salesforce-jdbc)
However that version is not compatible with IntelliJ because of a lot of unsupported features:
* table names and columns names filtration is not implemented
* table name and column names are case sensitive
* no metadata provided for queries so IntelliJ just ignores the results returned by the driver

These issues were fixed in the current version in this fork.

[Watch the demo video](https://spuliaiev-sfdc.github.io/salesforce-jdbc/docs/SOQL-JDBC-IntelliJ-demo-264.mp4)

[![Watch the demo video](https://spuliaiev-sfdc.github.io/salesforce-jdbc/docs/intelliJ.png)](https://spuliaiev-sfdc.github.io/salesforce-jdbc/docs/SOQL-JDBC-IntelliJ-demo-264.mp4)

## Supported Salesforce and Java versions
The current version of the driver should be compatible with **Salesforce Partner API version 39.0 and higher** and **Java 8**.

## Get the driver
Download the driver [here](https://github.com/ascendix/mvnrepo/raw/master/com/ascendix/salesforce/salesforce-jdbc/1.1-SNAPSHOT/salesforce-jdbc-1.1-20180403.104727-1-single.jar)
Download the driver JAR file:
1. Read-Only version 1.3.1 : from [here](https://spuliaiev-sfdc.github.io/salesforce-jdbc/deliverables/sf-jdbc-driver-1.3.1-SNAPSHOT-jar-with-dependencies.jar)
2. Write support version 1.4.0 : from [here](https://spuliaiev-sfdc.github.io/salesforce-jdbc/deliverables/sf-jdbc-driver-1.4.0-SNAPSHOT-jar-with-dependencies.jar)

## Supported features
1. Queries support native SOQL;
```SQL
select Id, Account.Name, Owner.id, Owner.Name from Account
```
2. Nested queries are supported;
3. Write is supported as INSERT/UPDATE statements for version >= 1.4.0

The following functions are supported as part of calculation of new values:
* NOW()
* GETDATE()

For Example:
```SQL
INSERT INTO Account(Name, Phone) VALUES
('Account01', '555-123-1111'),
('Account02', '555-123-2222');

INSERT INTO Contact(FirstName, LastName, AccountId)
SELECT Name, Phone, Id
FROM Account
WHERE Name like 'Account0%';

UPDATE Contact SET LastName = 'Updated_Now_'+NOW()
WHERE AccountId IN (
SELECT ID from Account where Phone = '555-123-1111'
);
```
4. Request caching support on local drive. Caching supports 2 modes: global and session. Global mode means that the cached result will be accessible for all system users for certain JVM session. Session cache mode works for each Salesforce connection session separately. Both modes cache stores request result while JVM still running but no longer than for 1 hour. The cache mode can be enabled with a prefix of SOQL query.

How to use:
* Global cache mode:
```SQL
CACHE GLOBAL SELECT Id, Name FROM Account
```
* Session cache mode
```SQL
CACHE SESSION SELECT Id, Name FROM Account
```
5. Reconnect to other organization at the same host
```SQL
-- Postgres Notation
CONNECT USER admin@OtherOrg.com IDENTIFIED by "123456"

-- Oracle Notation
CONNECT admin@OtherOrg.com/123456

-- Postgres Notation to a different host using secure connection (by default)
CONNECT
TO ap1.stmpa.stm.salesforce.com
USER admin@OtherOrg.com IDENTIFIED by "123456"

-- Postgres Notation to a different host - local host using insecure connection
CONNECT
TO http://localhost:6109
USER admin@OtherOrg.com IDENTIFIED by "123456"
```
P.S. You need to use the machine host name in the connection url - not MyDomain org host name.

## Limitations
1. ***Version < 1.4.0*** The driver is only for read-only purposes now. Insert/update/delete functionality is not implemented yet.
2. ***Version >= 1.4.0*** Limited support of INSERT/UPDATE operations


## With Maven
Expand All @@ -30,8 +107,8 @@ Download the driver [here](https://github.com/ascendix/mvnrepo/raw/master/com/as
### Add dependency
<dependency>
<groupId>com.ascendix.salesforce</groupId>
<artifactId>salesforce-jdbc</artifactId>
<version>1.1-20180403.104727-1</version>
<artifactId>sf-jdbc-driver</artifactId>
<version>1.4.0-SNAPSHOT</version>
</dependency>


Expand Down Expand Up @@ -68,24 +145,7 @@ jdbc:ascendix:salesforce://;sessionId=uniqueIdAssociatedWithTheSession
| _https_ | Switch to use HTTP protocol instead of HTTPS <br>Default value is _true_|
| _api_ | Api version to use. <br>Default value is _50.0_. <br>Set _test.salesforce.com_ value to use sandbox. |
| _client_ | Client Id to use. <br>Default value is empty. |


## Supported features
1. Queries support native SOQL;
2. Nested queries are supported;
3. Request caching support on local drive. Caching supports 2 modes: global and session. Global mode means that the cached result will be accessible for all system users for certain JVM session. Session cache mode works for each Salesforce connection session separately. Both modes cache stores request result while JVM still running but no longer than for 1 hour. The cache mode can be enabled with a prefix of SOQL query. How to use:
=======
* Global cache mode:
```SQL
CACHE GLOBAL SELECT Id, Name FROM Account
```
* Session cache mode
```SQL
CACHE SESSION SELECT Id, Name FROM Account
```

## Limitations
1. The driver is only for read-only purposes now. Insert/udate/delete functionality is not implemented yet.
| _insecurehttps_ | Allow invalid certificates for SSL. |

## Configure BIRT Studio to use Salesforce JDBC driver

Expand All @@ -99,6 +159,67 @@ jdbc:ascendix:salesforce://;sessionId=uniqueIdAssociatedWithTheSession
See how it's done in [Salesforce JDBC report sample](docs/birt/Salesforce JDBC sample.rptdesign)


## Configure IntelliJ to use Salesforce JDBC driver

1. [How to add a JDBC driver](https://www.jetbrains.com/help/idea/data-sources-and-drivers-dialog.html)
2. How to set configuration properties for Salesforce JDBC driver.

IntelliJ provides various ways to set parameters for JDBC driver. For example, it can be done with the property binding feature in the data source editor and a report parameter.
Example JDBC Url:

```jdbc:ascendix:salesforce://dev@Local.org:123456@localorg.localhost.internal.salesforce.com:6109?https=false&api=48.0```

Please check what kind of access do you have to your org - HTTP or HTTPS and the API version to use.
Here is screenshot about results output and autocomplete support for SOQL queries in IntelliJ:

![image](/docs/Autocomplete-SOQL.png)


## In case of issues with the WSDL

Steps to update the partners.wsdl

1. Get and build https://github.com/forcedotcom/wsc
2. Run command:

`java -jar target/force-wsc-50.0.0-uber.jar blt/app/main/core/shared/submodules/wsdl/src/main/wsdl/partner.wsdl sforce-partner.jar`
3. Copy the com.sforce.soap to the driver

## SOQL Parser

This project uses a bit modified version of MuleSoft SOQL Parser which also supports quotes around field names.
It could be obtained from here: https://github.com/spuliaiev-sfdc/salesforce-soql-parser


## Version History

### 1.3.1.3
CONNECT command parsing fixes

### 1.3.1.0
Re-connection to a different host using CONNECT command

### 1.3.0.1
Insecure HTTPS - disabling the SSL Certificate verification

### 1.2.6.03
Update force-partner-api to 51.0.0

### 1.2.6.02
Fields for SubSelects aliases

Returning flat resultset for field

### 1.2.6.01
Update force-partner-api to 50.0.0

Implement parameters:
* loginDomain
* client
* https
* api

Implement missing JDBC methods which are required for JetBrains IntelliJ IDE

### Sponsors
[Ascendix Technologies Inc.](https://ascendix.com/) <img src="http://ww1.prweb.com/prfiles/2006/12/12/490667/ascendixlogo.jpg" width=100 align="right"/>
Expand Down
2 changes: 2 additions & 0 deletions build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
source ~/java8
mvn clean install -P single-jar && cp -f ./sf-jdbc-driver/target/sf-jdbc-driver-*-SNAPSHOT-jar-with-dependencies.jar ./deliverables/
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added docs/Autocomplete-SOQL.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/SOQL-JDBC-IntelliJ-demo-264.mp4
Binary file not shown.
81 changes: 81 additions & 0 deletions docs/cases/intellij/run_flow_00.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
2020-08-13 13:10:26,965 [4842581] INFO - g.FileBasedIndexProjectHandler - Has changed files: false; project=Project (name=untitled, containerState=ACTIVE, componentStore=/Users/spuliaiev/IdeaProjects/untitled)
2020-08-13 13:10:28,764 [4844380] WARN - ution.rmi.RemoteProcessSupport - Aug 13, 2020 8:10:28 PM com.ascendix.jdbc.salesforce.connection.ForceConnection isValid
2020-08-13 13:10:28,764 [4844380] WARN - ution.rmi.RemoteProcessSupport - INFO: isValid NOT_IMPLEMENTED
2020-08-13 13:10:28,766 [4844382] WARN - ution.rmi.RemoteProcessSupport - Aug 13, 2020 8:10:28 PM com.ascendix.jdbc.salesforce.connection.ForceConnection isValid
2020-08-13 13:10:28,766 [4844382] WARN - ution.rmi.RemoteProcessSupport - INFO: isValid NOT_IMPLEMENTED
2020-08-13 13:10:28,767 [4844383] WARN - ution.rmi.RemoteProcessSupport - Aug 13, 2020 8:10:28 PM com.ascendix.jdbc.salesforce.connection.ForceConnection isValid
2020-08-13 13:10:28,767 [4844383] WARN - ution.rmi.RemoteProcessSupport - INFO: isValid NOT_IMPLEMENTED
2020-08-13 13:10:28,780 [4844396] WARN - ution.rmi.RemoteProcessSupport - Aug 13, 2020 8:10:28 PM com.ascendix.jdbc.salesforce.connection.ForceConnection getCatalog
2020-08-13 13:10:28,781 [4844397] WARN - ution.rmi.RemoteProcessSupport - INFO: getCatalog NOT_IMPLEMENTED
2020-08-13 13:10:28,782 [4844398] WARN - ution.rmi.RemoteProcessSupport - Aug 13, 2020 8:10:28 PM com.ascendix.jdbc.salesforce.connection.ForceConnection createStatement
2020-08-13 13:10:28,782 [4844398] WARN - ution.rmi.RemoteProcessSupport - INFO: createStatement
2020-08-13 13:10:28,782 [4844398] ERROR - ij.database.console.JdbcEngine - connection.remoteConnection.createStatement() must not be null
java.lang.IllegalStateException: connection.remoteConnection.createStatement() must not be null
at com.intellij.database.dataSource.connection.statements.JdbcBasedSmartStatement$Simple.createStatement(JdbcBasedSmartStatement.kt:238)
at com.intellij.database.dataSource.connection.statements.JdbcBasedSmartStatement$Simple.createStatement(JdbcBasedSmartStatement.kt:219)
at com.intellij.database.dataSource.connection.statements.JdbcBasedSmartStatement$statementInstance$1.invoke(JdbcBasedSmartStatement.kt:100)
at com.intellij.database.dataSource.connection.statements.JdbcBasedSmartStatement$statementInstance$1.invoke(JdbcBasedSmartStatement.kt:18)
at com.intellij.database.dataSource.connection.statements.SmartStatementsUtil.runReporting(SmartStatementsUtil.kt:80)
at com.intellij.database.dataSource.connection.statements.JdbcBasedSmartStatement.statementInstance(JdbcBasedSmartStatement.kt:99)
at com.intellij.database.dataSource.connection.statements.JdbcBasedSmartStatement.access$statementInstance(JdbcBasedSmartStatement.kt:18)
at com.intellij.database.dataSource.connection.statements.JdbcBasedSmartStatement$getCurrentStatement$1.invoke(JdbcBasedSmartStatement.kt:118)
at com.intellij.database.dataSource.connection.statements.JdbcBasedSmartStatement$getCurrentStatement$1.invoke(JdbcBasedSmartStatement.kt:18)
at com.intellij.database.dataSource.connection.statements.StatementHolder$OneShot.invoke(StatementHolder.kt:36)
at com.intellij.database.dataSource.connection.statements.StatementHolder$OneShot.invoke(StatementHolder.kt:31)
at com.intellij.database.dataSource.connection.statements.JdbcBasedSmartStatement.getCurrentStatement(JdbcBasedSmartStatement.kt:118)
at com.intellij.database.dataSource.connection.statements.JdbcBasedSmartStatement.executeInCommonWay(JdbcBasedSmartStatement.kt:64)
at com.intellij.database.dataSource.connection.statements.JdbcBasedSmartStatement.execute(JdbcBasedSmartStatement.kt:42)
at com.intellij.database.dataSource.connection.statements.NoisyStatement.execute(NoisyStatement.kt:23)
at com.intellij.database.console.JdbcEngine$RegularExecutor.execute(JdbcEngine.java:1502)
at com.intellij.database.console.JdbcEngine$QueryExecutionOperation.lambda$execute$1(JdbcEngine.java:2086)
at com.intellij.database.dialects.base.BaseExecutionEnvironmentHelper.runInSpecificEnvironment(BaseExecutionEnvironmentHelper.java:52)
at com.intellij.database.console.JdbcEngine$QueryExecutionOperation.execute(JdbcEngine.java:2085)
at com.intellij.database.console.JdbcEngine$QueryExecutionOperation.perform(JdbcEngine.java:2030)
at com.intellij.database.console.JdbcEngine$OperationBase.perform(JdbcEngine.java:1699)
at com.intellij.database.console.JdbcEngine.lambda$visitQuery$5(JdbcEngine.java:384)
at com.intellij.database.console.AbstractEngine.lambda$submitRequest$4(AbstractEngine.java:182)
at com.intellij.database.console.AbstractEngine.lambda$null$2(AbstractEngine.java:156)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:577)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:61)
at com.intellij.database.dataSource.AsyncUtil.underProgress(AsyncUtil.java:180)
at com.intellij.database.console.AbstractEngine.lambda$submitRunnable$3(AbstractEngine.java:154)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
2020-08-13 13:10:28,783 [4844399] ERROR - ij.database.console.JdbcEngine - IntelliJ IDEA 2020.1 Build #IU-201.6668.121
2020-08-13 13:10:28,783 [4844399] ERROR - ij.database.console.JdbcEngine - JDK: 11.0.6; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o
2020-08-13 13:10:28,783 [4844399] ERROR - ij.database.console.JdbcEngine - OS: Mac OS X
2020-08-13 13:10:28,783 [4844399] ERROR - ij.database.console.JdbcEngine - Last Action: Console.Jdbc.Execute
2020-08-13 13:10:28,783 [4844399] WARN - ic.GenericDatabaseErrorHandler - connection.remoteConnection.createStatement() must not be null
java.lang.IllegalStateException: connection.remoteConnection.createStatement() must not be null
at com.intellij.database.dataSource.connection.statements.JdbcBasedSmartStatement$Simple.createStatement(JdbcBasedSmartStatement.kt:238)
at com.intellij.database.dataSource.connection.statements.JdbcBasedSmartStatement$Simple.createStatement(JdbcBasedSmartStatement.kt:219)
at com.intellij.database.dataSource.connection.statements.JdbcBasedSmartStatement$statementInstance$1.invoke(JdbcBasedSmartStatement.kt:100)
at com.intellij.database.dataSource.connection.statements.JdbcBasedSmartStatement$statementInstance$1.invoke(JdbcBasedSmartStatement.kt:18)
at com.intellij.database.dataSource.connection.statements.SmartStatementsUtil.runReporting(SmartStatementsUtil.kt:80)
at com.intellij.database.dataSource.connection.statements.JdbcBasedSmartStatement.statementInstance(JdbcBasedSmartStatement.kt:99)
at com.intellij.database.dataSource.connection.statements.JdbcBasedSmartStatement.access$statementInstance(JdbcBasedSmartStatement.kt:18)
at com.intellij.database.dataSource.connection.statements.JdbcBasedSmartStatement$getCurrentStatement$1.invoke(JdbcBasedSmartStatement.kt:118)
at com.intellij.database.dataSource.connection.statements.JdbcBasedSmartStatement$getCurrentStatement$1.invoke(JdbcBasedSmartStatement.kt:18)
at com.intellij.database.dataSource.connection.statements.StatementHolder$OneShot.invoke(StatementHolder.kt:36)
at com.intellij.database.dataSource.connection.statements.StatementHolder$OneShot.invoke(StatementHolder.kt:31)
at com.intellij.database.dataSource.connection.statements.JdbcBasedSmartStatement.getCurrentStatement(JdbcBasedSmartStatement.kt:118)
at com.intellij.database.dataSource.connection.statements.JdbcBasedSmartStatement.executeInCommonWay(JdbcBasedSmartStatement.kt:64)
at com.intellij.database.dataSource.connection.statements.JdbcBasedSmartStatement.execute(JdbcBasedSmartStatement.kt:42)
at com.intellij.database.dataSource.connection.statements.NoisyStatement.execute(NoisyStatement.kt:23)
at com.intellij.database.console.JdbcEngine$RegularExecutor.execute(JdbcEngine.java:1502)
at com.intellij.database.console.JdbcEngine$QueryExecutionOperation.lambda$execute$1(JdbcEngine.java:2086)
at com.intellij.database.dialects.base.BaseExecutionEnvironmentHelper.runInSpecificEnvironment(BaseExecutionEnvironmentHelper.java:52)
at com.intellij.database.console.JdbcEngine$QueryExecutionOperation.execute(JdbcEngine.java:2085)
at com.intellij.database.console.JdbcEngine$QueryExecutionOperation.perform(JdbcEngine.java:2030)
at com.intellij.database.console.JdbcEngine$OperationBase.perform(JdbcEngine.java:1699)
at com.intellij.database.console.JdbcEngine.lambda$visitQuery$5(JdbcEngine.java:384)
at com.intellij.database.console.AbstractEngine.lambda$submitRequest$4(AbstractEngine.java:182)
at com.intellij.database.console.AbstractEngine.lambda$null$2(AbstractEngine.java:156)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:577)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:61)
at com.intellij.database.dataSource.AsyncUtil.underProgress(AsyncUtil.java:180)
at com.intellij.database.console.AbstractEngine.lambda$submitRunnable$3(AbstractEngine.java:154)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Loading