[
https://issues.apache.org/jira/browse/DERBY-974?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12535204
]
Jørgen Løland commented on DERBY-974:
-------------------------------------
I figured a way to test this. Without the patch, the code below results in
"java.sql.SQLException: The connection was refused because the database test1
was not found."
whereas it correctly creates a database named 'test1' with the patch applied.
<code>
Properties props1 = new Properties();
props1.put("create", "true");
Properties props2 = new Properties(props1);
...
con = DriverManager.getConnection("jdbc:derby://localhost:1527/test1;", props2);
</code>
> ClientDriver can lose some connection properties
> ------------------------------------------------
>
> Key: DERBY-974
> URL: https://issues.apache.org/jira/browse/DERBY-974
> Project: Derby
> Issue Type: Bug
> Components: Network Client
> Affects Versions: 10.1.2.1, 10.1.3.1, 10.4.0.0
> Environment: Linux, Sun JRE 1.5
> Reporter: Michael Hackett
> Assignee: Jørgen Løland
> Priority: Minor
> Attachments: ClientDriver.java-diff, PropertiesTest.java
>
>
> Internally, the ClientDriver class's appendDatabaseAttributes() method uses
> keys() on the connection properties to get a list of the property names.
> However, this misses any properties in the default set. The correct method
> for a Properties object is propertyNames(). This will return the same type of
> object as keys(), but will include all properties.
> (It is unfortunate that Sun chose to make Properties a subclass of Hashtable,
> instead of giving Properties a Hashtable, as the former exposes too much
> implementation.)
> The fix is to simply replace calls to keys() on all Property objects to use
> propertyNames(). A quick search revealed that this is not the only place in
> the code base where this is done, so a more thorough scan should be made.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.