Hi M.K. Am 19.02.2017 um 18:33 schrieb M.K.: > > Class JTDSDataSourceFactory > <https://github.com/ops4j/org.ops4j.pax.jdbc/blob/master/pax-jdbc-jtds/src/main/java/org/ops4j/pax/jdbc/jtds/impl/JTDSDataSourceFactory.java>doesn't > work properly when lowercase entries are used in the configuration and I > think this is a defect. I'm using version 1.0.0 but I double-checked > that the most recent code in the repository didn't solve this problem. > > The class initially builds a connection property map based on the jdbc > URL provided in the configuration (line 76). Properties not included in > the URL are still populated in the map with empty values and map keys in > uppercase. For example 'PASSWORD='. > > The configuration properties are then parsed and the related key/pair's > are added to the map without being uppercase'd, leading to double > entries in the map for each properties: one in lowercase and one in > uppercase (loop at line 77). > > The properties are then injected in the data source object (loop at line > 80). Java reflection is being used for this step and it's using a > case-insensitive logic to select the setter method to be used for > injecting the property into the data source object (line 113). The > uppercase and lowercase entries are ultimately overriding each other. > > This can be reproduced with a configuration like this: > > url=jdbc:jtds:sqlserver://my.server:1433/my-database;integratedSecurity=true;domain=my-domain;useNTLMv2=true > user=someuser > password=some-password > > As I workaround, I had to uppercase my property keys and this works fine: > > USER=someuser > PASSWORD=some-password >
Thanks for the detailed analysis :) Another workaround is to put the url last in the properties file. That's why I missed the issue (as I have the password / user in lower case as well) Sorry for that! Greetings -Sascha- -- -- ------------------ OPS4J - http://www.ops4j.org - [email protected] --- You received this message because you are subscribed to the Google Groups "OPS4J" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
