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

unable to create a database using a different storage factory than the one provided by default with the engine

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 10.1.1.0
    • 10.1.1.0
    • Services
    • None
    • Windows , jdk142

    Description

      java -Dderby.subSubProtocol.csf=org.apache.derbyTesting.functionTests.util.corruptio.CorruptDiskStorageFactory org.apache.derby.tools.ij
      ij> connect 'jdbc:derby:csf:wombat1;create=true';
      ERROR XJ001: Java exception: 'ASSERT FAILED mismatched canonical names csf:C:\suresht\databases\wombat1 != C:\suresht\databases\wombat1: org.apache.derby.iapi.s
      ervices.sanity.AssertFailure'.
      Stack :
      ============= begin nested exception, level (1) ===========
      org.apache.derby.iapi.services.sanity.AssertFailure: ASSERT FAILED mismatched canonical names csf:C:\suresht\databases\wombat1 != C:\suresht\databases\wombat1
      at org.apache.derby.iapi.services.sanity.SanityManager.ASSERT(SanityManager.java:121)
      at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java:1773)
      at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(BaseMonitor.java:1018)
      at org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Monitor.java:578)
      at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(EmbedConnection.java:1509)
      at org.apache.derby.impl.jdbc.EmbedConnection.<init>(EmbedConnection.java:220)
      at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(EmbedConnection30.java:72)
      at org.apache.derby.jdbc.Driver30.getNewEmbedConnection(Driver30.java:73)
      at org.apache.derby.jdbc.InternalDriver.connect(InternalDriver.java:183)
      at java.sql.DriverManager.getConnection(DriverManager.java:512)
      at java.sql.DriverManager.getConnection(DriverManager.java:140)
      at org.apache.derby.impl.tools.ij.ij.dynamicConnection(ij.java:838)
      at org.apache.derby.impl.tools.ij.ij.ConnectStatement(ij.java:700)
      at org.apache.derby.impl.tools.ij.ij.ijStatement(ij.java:528)
      at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:289)
      at org.apache.derby.impl.tools.ij.Main.go(Main.java:209)
      at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:175)
      at org.apache.derby.impl.tools.ij.Main14.main(Main14.java:55)
      at org.apache.derby.tools.ij.main(ij.java:60)
      ============= end nested exception, level (1) ===========
      Cleanup action completed

      By Briefly looking the code what I found:
      getCanonicalServiceName() calls return the service name add sub protocol name
      (eg : csf) in the beginning like csf:C:\suresht\databases\wombat1 . Where as
      createServiceRoot(..) return canonical name without the protocol like
      C:\suresht\databases\wombat1.

      Related code:
      org.apache.derby.impl.services.monitor.BaseMonitor.java
      bootService(..)
      {...

      if(create)

      { ... serviceName = provider.createServiceRoot(serviceName, Boolean.valueOf(properties.getProperty(Property.DELETE_ON_CREATE)).booleanValue()); }

      SanityManager.ASSERT(provider.getCanonicalServiceName(serviceName).equals(serviceName),
      "mismatched canonical names provider.getCanonicalServiceName(serviceName)
      + " != " + serviceName);

      getCanonicalServiceName() calls return the service name add sub protocol name
      (eg : csf) in the beginning like csf:C:\suresht\databases\wombat1 . Where as
      createServiceRoot(..) return canonical name without the protocol like
      C:\suresht\databases\wombat1.

      One thing I could not understand is why service name is reset to the value that is returned from the createServiceRoot(..) ? Is it expected to be different
      than the one that is passed to it in some scenario ?

      Attachments

        Activity

          People

            tsuresh Suresh Thalamati
            tsuresh Suresh Thalamati
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: