[ http://issues.apache.org/jira/browse/DERBY-235?page=all ] Suresh Thalamati closed DERBY-235: ----------------------------------
> unable to create a database using a different storage factory than the one > provided by default with the engine > -------------------------------------------------------------------------------------------------------------- > > Key: DERBY-235 > URL: http://issues.apache.org/jira/browse/DERBY-235 > Project: Derby > Type: Bug > Components: Services > Versions: 10.1.0.0 > Environment: Windows , jdk142 > Reporter: Suresh Thalamati > Assignee: Suresh Thalamati > Priority: Minor > Fix For: 10.1.0.0 > > 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 ? > -- 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
