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

Reply via email to