Connecting to HLSQLDB through Intellij IDEA

Hi there. :slightly_smiling_face:

I’m trying to connect my IntelliJ IDE installation to the HSQL DB database created through CUBA. I’ve followed the instructions here:

https://doc.cuba-platform.com/manual-6.7/db_hsql_connect_idea.html

And I’ve also tried just allowing IntelliJ to import the connection from the project sources, which makes no difference; the database refuses to connect. I’ve had a look through the IntelliJ logs, and I’m still not sure what the problem is, though I suspect it’s some sort of security issue with the JVM. Should the server be running or shut down? I assumed it should be running.

2017-11-13 09:50:31,034 [ 459366]   INFO - urce.DatabaseConnectionManager - Connecting as: sa
2017-11-13 09:50:31,034 [ 459366]   INFO - urce.DatabaseConnectionManager - Connecting to: jdbc:hsqldb:hsql://localhost/workshop
2017-11-13 09:50:32,640 [ 460972]   WARN - urce.DatabaseConnectionManager - Connecting to: jdbc:hsqldb:hsql://localhost/workshop
2017-11-13 09:50:32,640 [ 460972]   WARN - urce.DatabaseConnectionManager - [08006][-1305] connection exception: connection failure: java.io.EOFException
2017-11-13 09:50:32,641 [ 460973]   WARN - lij.database.util.ErrorHandler - connection exception: connection failure: java.io.EOFException
java.sql.SQLException: connection exception: connection failure: java.io.EOFException
    at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
    at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
    at org.hsqldb.jdbc.JDBCConnection.<init>(Unknown Source)
    at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source)
    at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source)
    at com.intellij.database.remote.jdbc.impl.RemoteDriverImpl.connect(RemoteDriverImpl.java:27)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:346)
    at sun.rmi.transport.Transport$1.run(Transport.java:200)
    at sun.rmi.transport.Transport$1.run(Transport.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
    at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:276)
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:253)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:162)
    at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:227)
    at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:179)
    at com.sun.proxy.$Proxy156.connect(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.execution.rmi.RemoteUtil.invokeRemote(RemoteUtil.java:179)
    at com.intellij.execution.rmi.RemoteUtil.access$300(RemoteUtil.java:39)
    at com.intellij.execution.rmi.RemoteUtil$RemoteInvocationHandler.invoke(RemoteUtil.java:275)
    at com.sun.proxy.$Proxy157.connect(Unknown Source)
    at com.intellij.database.dataSource.DatabaseConnectionEstablisher.connect(DatabaseConnectionEstablisher.java:172)
    at com.intellij.database.dataSource.DatabaseConnectionEstablisher.tryConnect(DatabaseConnectionEstablisher.java:111)
    at com.intellij.database.dataSource.DatabaseConnectionEstablisher.lambda$establishConnection$1(DatabaseConnectionEstablisher.java:63)
    at com.intellij.database.dataSource.AsyncUtil.lambda$null$4(AsyncUtil.java:49)
    at com.intellij.database.dataSource.AsyncUtil.lambda$underProgress$14(AsyncUtil.java:127)
    at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:534)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:479)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:94)
    at com.intellij.database.dataSource.AsyncUtil.underProgress(AsyncUtil.java:133)
    at com.intellij.database.dataSource.AsyncUtil.underProgress(AsyncUtil.java:127)
    at com.intellij.database.dataSource.AsyncUtil.lambda$captureIndicator$5(AsyncUtil.java:49)
    at java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:952)
    at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:926)
    at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
    at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1595)
    at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:320)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: org.hsqldb.HsqlException: connection exception: connection failure: java.io.EOFException
    at org.hsqldb.error.Error.error(Unknown Source)
    at org.hsqldb.error.Error.error(Unknown Source)
    at org.hsqldb.ClientConnection.execute(Unknown Source)
    at org.hsqldb.ClientConnection.<init>(Unknown Source)
    at org.hsqldb.jdbc.JDBCConnection.<init>(Unknown Source)
    at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source)
    at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source)
    at com.intellij.database.remote.jdbc.impl.RemoteDriverImpl.connect(RemoteDriverImpl.java:27)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:346)
    at sun.rmi.transport.Transport$1.run(Transport.java:200)
    at sun.rmi.transport.Transport$1.run(Transport.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
    ... 3 more

Has anyone come across something like this before? Would appreciate a pointer in the right direction!

Thanks.

Hi!

We’ve set other port for HSQLDB instance: 9111. The default port is 9001, so you should set correct jdbc url:
jdbc:hsqldb:hsql://localhost:9111/workshop.

I’ll create an issue in our bug tracking system to update documentation.

Best regards,
Daniil.

Thank you very much!

I’ll give that a try.

Mmmm. Now I’m just getting a ‘connection refused’ error. Is there a password for the connection?

No, you don’t need any password, only the sa username.

Also, I recommend you to use the SQuirrel SQL Client: link. Probably, it looks ugly but works very fast and it is free.

Best regards,
Daniil.

Also, make sure you use the correct HSQLDB driver version. If there is a mismatch it will not connect (it seems Cuba uses 2.3.2 and the latest is 2.4.0)

Thanks for that. I’ll give it a try.

I have the same problem.
The cause for me is IDEA used a incompatible db driver. Use 2.3.2 will be ok.

1 Like