You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Alex Miller (JIRA)" <de...@db.apache.org> on 2006/01/20 20:31:42 UTC
[jira] Created: (DERBY-854) DatabaseMetaData methods fail on
read-only database
DatabaseMetaData methods fail on read-only database
---------------------------------------------------
Key: DERBY-854
URL: http://issues.apache.org/jira/browse/DERBY-854
Project: Derby
Type: Bug
Components: JDBC
Versions: 10.1.2.1
Environment: Win XP SP2 / Intel
Reporter: Alex Miller
I am using a read-only db in a zip file with Derby in embedded mode. I ran an importer against it which basically just harvests info from DatabaseMetaData and got an error on several methods like this one. The method in question here is DatabaseMetaData.getTableTypes(). The same thing seems to happen on other methods I've tried as well (getCatalogs, getProcedures, etc).
Program:
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Connection conn = DriverManager.getConnection("jdbc:derby:jar:(d:\\derby\\bqt\\zipped\\bqt-mini.zip)bqt");
DatabaseMetaData dbmd = conn.getMetaData();
ResultSet rs = dbmd.getTableTypes();
ERROR 40XD1: Container was opened in read-only mode.
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.store.raw.data.BaseContainer.use(Unknown Source)
at org.apache.derby.impl.store.raw.data.BaseContainerHandle.useContainer(Unknown Source)
at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
at org.apache.derby.impl.store.raw.xact.Xact.openContainer(Unknown Source)
at org.apache.derby.impl.store.access.conglomerate.OpenConglomerate.init(Unknown Source)
at org.apache.derby.impl.store.access.heap.Heap.open(Unknown Source)
at org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknown Source)
at org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknown Source)
at org.apache.derby.impl.sql.execute.RowChangerImpl.openForUpdate(Unknown Source)
at org.apache.derby.impl.sql.execute.RowChangerImpl.open(Unknown Source)
at org.apache.derby.impl.sql.catalog.TabInfoImpl.deleteRows(Unknown Source)
at org.apache.derby.impl.sql.catalog.TabInfoImpl.deleteRow(Unknown Source)
at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.dropDependentsStoredDependencies(Unknown Source)
at org.apache.derby.impl.sql.depend.BasicDependencyManager.clearDependencies(Unknown Source)
at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.compileStatement(Unknown Source)
at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.prepareAndRelease(Unknown Source)
at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.prepareAndRelease(Unknown Source)
at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.getPreparedStatement(Unknown Source)
at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.getPreparedStatement(Unknown Source)
at org.apache.derby.impl.sql.compile.ExecSPSNode.generate(Unknown Source)
at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(Unknown Source)
at org.apache.derby.jdbc.Driver30.newEmbedPreparedStatement(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.prepareMetaDataStatement(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.prepareSPS(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getPreparedQuery(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getSimpleQuery(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getTableTypes(Unknown Source)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
[jira] Commented: (DERBY-854) DatabaseMetaData methods fail on
read-only database
Posted by "Joakim Andersson (JIRA)" <de...@db.apache.org>.
[ http://issues.apache.org/jira/browse/DERBY-854?page=comments#action_12441082 ]
Joakim Andersson commented on DERBY-854:
----------------------------------------
This is also a problem when using dbunit and using a DatabaseSequenceFilter.
This bug forces me to go back to hsql.
> DatabaseMetaData methods fail on read-only database
> ---------------------------------------------------
>
> Key: DERBY-854
> URL: http://issues.apache.org/jira/browse/DERBY-854
> Project: Derby
> Issue Type: Bug
> Components: JDBC
> Affects Versions: 10.1.2.1
> Environment: Win XP SP2 / Intel
> Reporter: Alex Miller
> Attachments: BirtSample.jar, TestGetDBMetaData.java
>
>
> I am using a read-only db in a zip file with Derby in embedded mode. I ran an importer against it which basically just harvests info from DatabaseMetaData and got an error on several methods like this one. The method in question here is DatabaseMetaData.getTableTypes(). The same thing seems to happen on other methods I've tried as well (getCatalogs, getProcedures, etc).
> Program:
> Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
> Connection conn = DriverManager.getConnection("jdbc:derby:jar:(d:\\derby\\bqt\\zipped\\bqt-mini.zip)bqt");
> DatabaseMetaData dbmd = conn.getMetaData();
> ResultSet rs = dbmd.getTableTypes();
> ERROR 40XD1: Container was opened in read-only mode.
> at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseContainer.use(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseContainerHandle.useContainer(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
> at org.apache.derby.impl.store.raw.xact.Xact.openContainer(Unknown Source)
> at org.apache.derby.impl.store.access.conglomerate.OpenConglomerate.init(Unknown Source)
> at org.apache.derby.impl.store.access.heap.Heap.open(Unknown Source)
> at org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknown Source)
> at org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknown Source)
> at org.apache.derby.impl.sql.execute.RowChangerImpl.openForUpdate(Unknown Source)
> at org.apache.derby.impl.sql.execute.RowChangerImpl.open(Unknown Source)
> at org.apache.derby.impl.sql.catalog.TabInfoImpl.deleteRows(Unknown Source)
> at org.apache.derby.impl.sql.catalog.TabInfoImpl.deleteRow(Unknown Source)
> at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.dropDependentsStoredDependencies(Unknown Source)
> at org.apache.derby.impl.sql.depend.BasicDependencyManager.clearDependencies(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.compileStatement(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.prepareAndRelease(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.prepareAndRelease(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.getPreparedStatement(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.getPreparedStatement(Unknown Source)
> at org.apache.derby.impl.sql.compile.ExecSPSNode.generate(Unknown Source)
> at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
> at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
> at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(Unknown Source)
> at org.apache.derby.jdbc.Driver30.newEmbedPreparedStatement(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedConnection.prepareMetaDataStatement(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.prepareSPS(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getPreparedQuery(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getSimpleQuery(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getTableTypes(Unknown Source)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Updated: (DERBY-854) DatabaseMetaData methods fail on
read-only database
Posted by "Gary Xue (JIRA)" <de...@db.apache.org>.
[ http://issues.apache.org/jira/browse/DERBY-854?page=all ]
Gary Xue updated DERBY-854:
---------------------------
Attachment: TestGetDBMetaData.java
test code
> DatabaseMetaData methods fail on read-only database
> ---------------------------------------------------
>
> Key: DERBY-854
> URL: http://issues.apache.org/jira/browse/DERBY-854
> Project: Derby
> Type: Bug
> Components: JDBC
> Versions: 10.1.2.1
> Environment: Win XP SP2 / Intel
> Reporter: Alex Miller
> Attachments: BirtSample.jar, TestGetDBMetaData.java
>
> I am using a read-only db in a zip file with Derby in embedded mode. I ran an importer against it which basically just harvests info from DatabaseMetaData and got an error on several methods like this one. The method in question here is DatabaseMetaData.getTableTypes(). The same thing seems to happen on other methods I've tried as well (getCatalogs, getProcedures, etc).
> Program:
> Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
> Connection conn = DriverManager.getConnection("jdbc:derby:jar:(d:\\derby\\bqt\\zipped\\bqt-mini.zip)bqt");
> DatabaseMetaData dbmd = conn.getMetaData();
> ResultSet rs = dbmd.getTableTypes();
> ERROR 40XD1: Container was opened in read-only mode.
> at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseContainer.use(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseContainerHandle.useContainer(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
> at org.apache.derby.impl.store.raw.xact.Xact.openContainer(Unknown Source)
> at org.apache.derby.impl.store.access.conglomerate.OpenConglomerate.init(Unknown Source)
> at org.apache.derby.impl.store.access.heap.Heap.open(Unknown Source)
> at org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknown Source)
> at org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknown Source)
> at org.apache.derby.impl.sql.execute.RowChangerImpl.openForUpdate(Unknown Source)
> at org.apache.derby.impl.sql.execute.RowChangerImpl.open(Unknown Source)
> at org.apache.derby.impl.sql.catalog.TabInfoImpl.deleteRows(Unknown Source)
> at org.apache.derby.impl.sql.catalog.TabInfoImpl.deleteRow(Unknown Source)
> at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.dropDependentsStoredDependencies(Unknown Source)
> at org.apache.derby.impl.sql.depend.BasicDependencyManager.clearDependencies(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.compileStatement(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.prepareAndRelease(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.prepareAndRelease(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.getPreparedStatement(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.getPreparedStatement(Unknown Source)
> at org.apache.derby.impl.sql.compile.ExecSPSNode.generate(Unknown Source)
> at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
> at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
> at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(Unknown Source)
> at org.apache.derby.jdbc.Driver30.newEmbedPreparedStatement(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedConnection.prepareMetaDataStatement(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.prepareSPS(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getPreparedQuery(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getSimpleQuery(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getTableTypes(Unknown Source)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
[jira] Commented: (DERBY-854) DatabaseMetaData methods fail on
read-only database
Posted by "Sunitha Kambhampati (JIRA)" <de...@db.apache.org>.
[ http://issues.apache.org/jira/browse/DERBY-854?page=comments#action_12441147 ]
Sunitha Kambhampati commented on DERBY-854:
-------------------------------------------
I tried the repro against the BirtSample.jar and cannot reproduce this failure with 10.1.3 jars. I can reproduce this failure with 10.1.2.1 jars. So it looks like this issue got solved somewhere in between 10.1.2.1 and 10.1.3.
Gary and Joakim, can you try with the 10.1.3 (http://db.apache.org/derby/releases/release-10.1.3.1.cgi) or the latest release 10.2.1.6 jars and confirm this fixes the issue for you. Thanks.
> DatabaseMetaData methods fail on read-only database
> ---------------------------------------------------
>
> Key: DERBY-854
> URL: http://issues.apache.org/jira/browse/DERBY-854
> Project: Derby
> Issue Type: Bug
> Components: JDBC
> Affects Versions: 10.1.2.1
> Environment: Win XP SP2 / Intel
> Reporter: Alex Miller
> Attachments: BirtSample.jar, TestGetDBMetaData.java
>
>
> I am using a read-only db in a zip file with Derby in embedded mode. I ran an importer against it which basically just harvests info from DatabaseMetaData and got an error on several methods like this one. The method in question here is DatabaseMetaData.getTableTypes(). The same thing seems to happen on other methods I've tried as well (getCatalogs, getProcedures, etc).
> Program:
> Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
> Connection conn = DriverManager.getConnection("jdbc:derby:jar:(d:\\derby\\bqt\\zipped\\bqt-mini.zip)bqt");
> DatabaseMetaData dbmd = conn.getMetaData();
> ResultSet rs = dbmd.getTableTypes();
> ERROR 40XD1: Container was opened in read-only mode.
> at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseContainer.use(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseContainerHandle.useContainer(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
> at org.apache.derby.impl.store.raw.xact.Xact.openContainer(Unknown Source)
> at org.apache.derby.impl.store.access.conglomerate.OpenConglomerate.init(Unknown Source)
> at org.apache.derby.impl.store.access.heap.Heap.open(Unknown Source)
> at org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknown Source)
> at org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknown Source)
> at org.apache.derby.impl.sql.execute.RowChangerImpl.openForUpdate(Unknown Source)
> at org.apache.derby.impl.sql.execute.RowChangerImpl.open(Unknown Source)
> at org.apache.derby.impl.sql.catalog.TabInfoImpl.deleteRows(Unknown Source)
> at org.apache.derby.impl.sql.catalog.TabInfoImpl.deleteRow(Unknown Source)
> at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.dropDependentsStoredDependencies(Unknown Source)
> at org.apache.derby.impl.sql.depend.BasicDependencyManager.clearDependencies(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.compileStatement(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.prepareAndRelease(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.prepareAndRelease(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.getPreparedStatement(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.getPreparedStatement(Unknown Source)
> at org.apache.derby.impl.sql.compile.ExecSPSNode.generate(Unknown Source)
> at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
> at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
> at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(Unknown Source)
> at org.apache.derby.jdbc.Driver30.newEmbedPreparedStatement(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedConnection.prepareMetaDataStatement(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.prepareSPS(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getPreparedQuery(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getSimpleQuery(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getTableTypes(Unknown Source)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Updated: (DERBY-854) DatabaseMetaData methods fail on
read-only database
Posted by "Gary Xue (JIRA)" <de...@db.apache.org>.
[ http://issues.apache.org/jira/browse/DERBY-854?page=all ]
Gary Xue updated DERBY-854:
---------------------------
Attachment: BirtSample.jar
BirtSample database
> DatabaseMetaData methods fail on read-only database
> ---------------------------------------------------
>
> Key: DERBY-854
> URL: http://issues.apache.org/jira/browse/DERBY-854
> Project: Derby
> Type: Bug
> Components: JDBC
> Versions: 10.1.2.1
> Environment: Win XP SP2 / Intel
> Reporter: Alex Miller
> Attachments: BirtSample.jar
>
> I am using a read-only db in a zip file with Derby in embedded mode. I ran an importer against it which basically just harvests info from DatabaseMetaData and got an error on several methods like this one. The method in question here is DatabaseMetaData.getTableTypes(). The same thing seems to happen on other methods I've tried as well (getCatalogs, getProcedures, etc).
> Program:
> Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
> Connection conn = DriverManager.getConnection("jdbc:derby:jar:(d:\\derby\\bqt\\zipped\\bqt-mini.zip)bqt");
> DatabaseMetaData dbmd = conn.getMetaData();
> ResultSet rs = dbmd.getTableTypes();
> ERROR 40XD1: Container was opened in read-only mode.
> at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseContainer.use(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseContainerHandle.useContainer(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
> at org.apache.derby.impl.store.raw.xact.Xact.openContainer(Unknown Source)
> at org.apache.derby.impl.store.access.conglomerate.OpenConglomerate.init(Unknown Source)
> at org.apache.derby.impl.store.access.heap.Heap.open(Unknown Source)
> at org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknown Source)
> at org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknown Source)
> at org.apache.derby.impl.sql.execute.RowChangerImpl.openForUpdate(Unknown Source)
> at org.apache.derby.impl.sql.execute.RowChangerImpl.open(Unknown Source)
> at org.apache.derby.impl.sql.catalog.TabInfoImpl.deleteRows(Unknown Source)
> at org.apache.derby.impl.sql.catalog.TabInfoImpl.deleteRow(Unknown Source)
> at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.dropDependentsStoredDependencies(Unknown Source)
> at org.apache.derby.impl.sql.depend.BasicDependencyManager.clearDependencies(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.compileStatement(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.prepareAndRelease(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.prepareAndRelease(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.getPreparedStatement(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.getPreparedStatement(Unknown Source)
> at org.apache.derby.impl.sql.compile.ExecSPSNode.generate(Unknown Source)
> at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
> at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
> at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(Unknown Source)
> at org.apache.derby.jdbc.Driver30.newEmbedPreparedStatement(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedConnection.prepareMetaDataStatement(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.prepareSPS(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getPreparedQuery(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getSimpleQuery(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getTableTypes(Unknown Source)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
[jira] Resolved: (DERBY-854) DatabaseMetaData methods fail on
read-only database
Posted by "Rick Hillegas (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/DERBY-854?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Rick Hillegas resolved DERBY-854.
---------------------------------
Resolution: Fixed
Based on Sunitha's analysis, I'm marking this as resolved.
> DatabaseMetaData methods fail on read-only database
> ---------------------------------------------------
>
> Key: DERBY-854
> URL: https://issues.apache.org/jira/browse/DERBY-854
> Project: Derby
> Issue Type: Bug
> Components: JDBC
> Affects Versions: 10.1.2.1
> Environment: Win XP SP2 / Intel
> Reporter: Alex Miller
> Attachments: BirtSample.jar, TestGetDBMetaData.java
>
>
> I am using a read-only db in a zip file with Derby in embedded mode. I ran an importer against it which basically just harvests info from DatabaseMetaData and got an error on several methods like this one. The method in question here is DatabaseMetaData.getTableTypes(). The same thing seems to happen on other methods I've tried as well (getCatalogs, getProcedures, etc).
> Program:
> Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
> Connection conn = DriverManager.getConnection("jdbc:derby:jar:(d:\\derby\\bqt\\zipped\\bqt-mini.zip)bqt");
> DatabaseMetaData dbmd = conn.getMetaData();
> ResultSet rs = dbmd.getTableTypes();
> ERROR 40XD1: Container was opened in read-only mode.
> at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseContainer.use(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseContainerHandle.useContainer(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
> at org.apache.derby.impl.store.raw.xact.Xact.openContainer(Unknown Source)
> at org.apache.derby.impl.store.access.conglomerate.OpenConglomerate.init(Unknown Source)
> at org.apache.derby.impl.store.access.heap.Heap.open(Unknown Source)
> at org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknown Source)
> at org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknown Source)
> at org.apache.derby.impl.sql.execute.RowChangerImpl.openForUpdate(Unknown Source)
> at org.apache.derby.impl.sql.execute.RowChangerImpl.open(Unknown Source)
> at org.apache.derby.impl.sql.catalog.TabInfoImpl.deleteRows(Unknown Source)
> at org.apache.derby.impl.sql.catalog.TabInfoImpl.deleteRow(Unknown Source)
> at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.dropDependentsStoredDependencies(Unknown Source)
> at org.apache.derby.impl.sql.depend.BasicDependencyManager.clearDependencies(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.compileStatement(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.prepareAndRelease(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.prepareAndRelease(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.getPreparedStatement(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.getPreparedStatement(Unknown Source)
> at org.apache.derby.impl.sql.compile.ExecSPSNode.generate(Unknown Source)
> at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
> at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
> at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(Unknown Source)
> at org.apache.derby.jdbc.Driver30.newEmbedPreparedStatement(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedConnection.prepareMetaDataStatement(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.prepareSPS(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getPreparedQuery(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getSimpleQuery(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getTableTypes(Unknown Source)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (DERBY-854) DatabaseMetaData methods fail on
read-only database
Posted by "Gary Xue (JIRA)" <de...@db.apache.org>.
[ http://issues.apache.org/jira/browse/DERBY-854?page=comments#action_12414281 ]
Gary Xue commented on DERBY-854:
--------------------------------
This isssue is also encounted by the Eclipse BIRT project (http://www.eclipse.org/birt) and is blocking BIRT's upgrade to Derby 10.1.2.1. This problem does not occur with Derby 10.0.2, which BIRT currrently packages.
To help with reproduction of this issue, I have attached:
(1) BirtSample.jar, which is the Jar'ed version of the BIRT sample database created with Derby 10.1.2.1.
(2) Test code TestGetDBMetaData.
To run the test, place the attached db jar file in c:\temp (or update TestGetDBMetaData.main to set dbFile to the location of this file). Run TestGetDBMetaData class. You will get the same exception as in Description.
This is a blocker issue for us and we'd appreciate a prompt fix or a workaround suggestion.
> DatabaseMetaData methods fail on read-only database
> ---------------------------------------------------
>
> Key: DERBY-854
> URL: http://issues.apache.org/jira/browse/DERBY-854
> Project: Derby
> Type: Bug
> Components: JDBC
> Versions: 10.1.2.1
> Environment: Win XP SP2 / Intel
> Reporter: Alex Miller
>
> I am using a read-only db in a zip file with Derby in embedded mode. I ran an importer against it which basically just harvests info from DatabaseMetaData and got an error on several methods like this one. The method in question here is DatabaseMetaData.getTableTypes(). The same thing seems to happen on other methods I've tried as well (getCatalogs, getProcedures, etc).
> Program:
> Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
> Connection conn = DriverManager.getConnection("jdbc:derby:jar:(d:\\derby\\bqt\\zipped\\bqt-mini.zip)bqt");
> DatabaseMetaData dbmd = conn.getMetaData();
> ResultSet rs = dbmd.getTableTypes();
> ERROR 40XD1: Container was opened in read-only mode.
> at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseContainer.use(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseContainerHandle.useContainer(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
> at org.apache.derby.impl.store.raw.xact.Xact.openContainer(Unknown Source)
> at org.apache.derby.impl.store.access.conglomerate.OpenConglomerate.init(Unknown Source)
> at org.apache.derby.impl.store.access.heap.Heap.open(Unknown Source)
> at org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknown Source)
> at org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknown Source)
> at org.apache.derby.impl.sql.execute.RowChangerImpl.openForUpdate(Unknown Source)
> at org.apache.derby.impl.sql.execute.RowChangerImpl.open(Unknown Source)
> at org.apache.derby.impl.sql.catalog.TabInfoImpl.deleteRows(Unknown Source)
> at org.apache.derby.impl.sql.catalog.TabInfoImpl.deleteRow(Unknown Source)
> at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.dropDependentsStoredDependencies(Unknown Source)
> at org.apache.derby.impl.sql.depend.BasicDependencyManager.clearDependencies(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.compileStatement(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.prepareAndRelease(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.prepareAndRelease(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.getPreparedStatement(Unknown Source)
> at org.apache.derby.iapi.sql.dictionary.SPSDescriptor.getPreparedStatement(Unknown Source)
> at org.apache.derby.impl.sql.compile.ExecSPSNode.generate(Unknown Source)
> at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
> at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
> at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(Unknown Source)
> at org.apache.derby.jdbc.Driver30.newEmbedPreparedStatement(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedConnection.prepareMetaDataStatement(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.prepareSPS(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getPreparedQuery(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getSimpleQuery(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedDatabaseMetaData.getTableTypes(Unknown Source)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira