db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Dolan (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-4622) Specify "database:" URL prefix in documentation
Date Tue, 20 Apr 2010 15:25:51 GMT

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

Chris Dolan commented on DERBY-4622:

Hmm, I didn't know about the 1-character special case.  It looks like I got myself in trouble
by using the path part of a file:// url:

Caused by: java.sql.SQLException: Invalid value for property 'databaseName'='/C:/AppData/local/Avid/uddi_eclipse/juddiDB/'.
	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87)
	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:93)
	at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java:179)
	at org.apache.derby.jdbc.EmbeddedDataSource.getConnection(EmbeddedDataSource.java:484)
	at org.apache.derby.jdbc.EmbeddedDataSource.getConnection(EmbeddedDataSource.java:423)
	at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69)
	at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
	... 15 more

If I massage the file:// URL into a File instance and use File.getAbsolutePath() which gets
rid of the leading "/" then you're right and the code works as you have described.  So it
looks like this is about 90% user error.  Possible code/doc changes:

 * explicitly support a new "file" sub-subprotocol in addition to the basic "directory", "classpath",
"jar", "http", and "https"
 * add a 2-char exception for "/[a-zA-z]:"
 * add a message to the tutorial that states that the implicit default protocol is "directory:"
and mention a few of the others

Thank you!

> Specify "database:" URL prefix in documentation
> -----------------------------------------------
>                 Key: DERBY-4622
>                 URL: https://issues.apache.org/jira/browse/DERBY-4622
>             Project: Derby
>          Issue Type: Bug
>          Components: Documentation
>            Reporter: Chris Dolan
>            Priority: Trivial
> The tutorial step titled "Activity 3: Run a JDBC program using the embedded driver" at
the following URL (http://db.apache.org/derby/docs/10.4/getstart/getstart-single.html#tgsactivity3_Setup)
recommends this syntax for specifying a directory-based datasource:
>   String connectionURL = "jdbc:derby:" + dbName + ";create=true";
> For Windows users who need to specify an absolute path to the database, this is a problem
because the connection interprets "c:/path/to/db" as non-existent protocol "c" and a database
name of "/path/to/db".  Better documentation would be explicitly specify the protocol:
>   String connectionURL = "jdbc:derby:directory:" + dbName + ";create=true";
> (this would have saved me about a day of troubleshooting...)

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message