Vaadin SQLContainer with tableQuery Problem

Hi

i have been working with the sqlContainer and it’s tableQueries, but i’m stuck with a weird exception :

SQLContainer.getPropertyIds Failed to fetch property ids, rolling back
java.sql.SQLException: Statement is closed
at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
at org.hsqldb.jdbc.jdbcStatement.checkClosed(Unknown Source)
at org.hsqldb.jdbc.jdbcPreparedStatement.clearParameters(Unknown Source)
at org.ow2.jonas.dbm.internal.cm.JStatement.reuse(JStatement.java:164)
at org.ow2.jonas.dbm.internal.cm.JManagedConnection.prepareStatement(JManagedConnection.java:856)
at org.ow2.jonas.dbm.internal.cm.JManagedConnection.prepareStatement(JManagedConnection.java:872)
at org.ow2.jonas.dbm.internal.cm.JConnection.invoke(JConnection.java:140)
at $Proxy27.prepareStatement(Unknown Source)
at com.vaadin.data.util.sqlcontainer.query.TableQuery.executeQuery(TableQuery.java:402)
at com.vaadin.data.util.sqlcontainer.query.TableQuery.getResults(TableQuery.java:170)
at com.vaadin.data.util.sqlcontainer.SQLContainer.getPropertyIds(SQLContainer.java:1061)
at com.vaadin.data.util.sqlcontainer.SQLContainer.(SQLContainer.java:131)
at com.orange.cegelece.itinisere.tabs.DataLogTab.initTableData(DataLogTab.java:212)
at com.orange.cegelece.itinisere.tabs.DataLogTab.buildResultForm(DataLogTab.java:171)
at com.orange.cegelece.itinisere.tabs.DataLogTab.(DataLogTab.java:81)
at com.orange.cegelece.itinisere.TabSheetApplication.(TabSheetApplication.java:66)
at com.orange.cegelece.itinisere.TabApplication.init(TabApplication.java:31)
at com.vaadin.Application.start(Application.java:554)
at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.startApplication(AbstractApplicationServlet.java:1213)
at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:484)

2012-04-27 17:18:09,931 JConnection.invoke Cannot work with a closed Connection

I’m using a hsqldb database in jonas webserver, and my source code looks like this :

  [code]

DataSource dataSourceJndiName = (DataSource) context.lookup(“jdbc_1”);

    J2EEConnectionPool pool = new J2EEConnectionPool(dataSourceJndiName);

    TableQuery tq = new TableQuery("MESSAGETRACE", pool);

    SQLContainer container = new SQLContainer(tq);

    resultsTable.setContainerDataSource(container);

[/code]

Any suggestions?

Thank you in advance,

Bonjour,

I just faced the same issue with the SimpleJDBCConnectionPool using MS SQL server.

Your post is 2 years old. Did you find a solution ?

Merci

I used a FreeformQuery instead of TableQuery and it worked.

Hi, I am new to Vaadin and stuck with the following exception. Can anyone please help with this?
Thanks.

WARNING: Failed to fetch property ids, rolling back
java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4074)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4006)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:919)
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1694)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1244)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2397)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2430)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2215)
at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:813)
at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at com.vaadin.data.util.sqlcontainer.connection.SimpleJDBCConnectionPool.createConnection(SimpleJDBCConnectionPool.java:139)
at com.vaadin.data.util.sqlcontainer.connection.SimpleJDBCConnectionPool.initializeConnections(SimpleJDBCConnectionPool.java:91)
at com.vaadin.data.util.sqlcontainer.connection.SimpleJDBCConnectionPool.reserveConnection(SimpleJDBCConnectionPool.java:98)
at com.vaadin.data.util.sqlcontainer.query.FreeformQuery.beginTransaction(FreeformQuery.java:322)
at com.vaadin.data.util.sqlcontainer.SQLContainer.getPropertyIds(SQLContainer.java:1060)
at com.vaadin.data.util.sqlcontainer.SQLContainer.(SQLContainer.java:128)

Well it seems to be quite obvious: using the user root an the password YES wasn’t right when trying to authenticate to localhost or you’re missing a port.

@Marius Reinwald: Thank you for taking note of my problem. It is solved now.
The Mysql connector had wrong path.