[ 
https://issues.apache.org/jira/browse/DERBY-4907?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12993241#comment-12993241
 ] 

Kathey Marsden commented on DERBY-4907:
---------------------------------------

Thanks Siddharth.  I think if databaseName is an empty string "", which is what 
is used for engine shutdown, shortDatabaseName will return null instead of "";

Maybe instead  do the split only if  the databaseName is not null and if it 
contains a semicolon. Otherwise return databaseName.  That way we only have the 
overhead of the split call when it is really needed and don't have to worry so 
much about these edge cases. 

In the test I think it would also be good to test with  the other datasource 
types, JDBCDataSource.getDataSource() and 
J2EEDataSource.getConnectionPoolDataSource() too.   These were not broken 
before but good to have coverage.

I think I would not include spelling corrections that are far removed from the 
code change, especially in files that have no code changes.   This type of 
thing is best done separately.

Thanks

Kathey



> EmbeddedXADataSource with ;create=true attribute set in setDatabaseName fails 
> with java.sql.SQLException: Database not available
> --------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-4907
>                 URL: https://issues.apache.org/jira/browse/DERBY-4907
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions: 10.1.3.1, 10.2.2.0, 10.3.3.0, 10.4.2.0, 10.5.3.0, 
> 10.6.2.1
>            Reporter: Kathey Marsden
>            Assignee: Siddharth Srivastava
>            Priority: Minor
>         Attachments: derby4907.txt, derby4907_final.diff
>
>
> Setting the ;create=true attribute in setDatabaseName with 
> EmbededXADataSource and EmbeddedXADataSource40  fails with 
> $ java TestDerbyCreate
> Exception in thread "main" java.sql.SQLException: Database not available
>         at 
> org.apache.derby.jdbc.EmbeddedXADataSource.setupResourceAdapter(Embe
> dedXADataSource.java:175)
>         at 
> org.apache.derby.jdbc.EmbeddedXADataSource.getXAConnection(EmbeddedX
> DataSource.java:101)
>         at TestDerbyCreate.main(TestDerbyCreate.java:18)
>       
> using the create attributie in databaseName works fine with 
> EmbeddedDataSource.  
> Using setCreateDatabase("create") with EmbeddedXADataSource is a good work 
> around and I think generally preferable.
> import java.sql.*;
> import javax.sql.*;
> public class TestDerbyCreate
> {
>     public static void main(String[] args) throws Throwable
>     {
>         org.apache.derby.jdbc.EmbeddedXADataSource ds =
>             new 
> org.apache.derby.jdbc.EmbeddedXADataSource();
>         ds.setDatabaseName("TestDB;create=true");
>         ds.setUser("dbuser1");
>         ds.setPassword("dbpwd1");
>       PooledConnection pooledConn = ds.getXAConnection();
>         Connection conn = pooledConn.getConnection();
>         System.out.println("Database product: " + 
> conn.getMetaData().getDatabaseProductName());
>         System.out.println("Database version: " + 
> conn.getMetaData().getDatabaseProductVersion());
>         System.out.println("Driver name:      " + 
> conn.getMetaData().getDriverName());
>         System.out.println("Driver version:   " + 
> conn.getMetaData().getDriverVersion());
>         System.out.println("JDBC driver major ve

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to