[
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