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

Reply via email to