[
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.