Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-854

DatabaseMetaData methods fail on read-only database

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 10.1.2.1
    • 10.3.1.4
    • JDBC
    • None
    • Win XP SP2 / Intel

    Description

      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)

      Attachments

        1. BirtSample.jar
          478 kB
          Gary Xue
        2. TestGetDBMetaData.java
          1 kB
          Gary Xue

        Issue Links

          Activity

            People

              Unassigned Unassigned
              amiller Alex Miller
              Votes:
              4 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: