Thread: [c3p0-users] Why am I getting PropertyVetoException when trying to use a custom ConnectionTester?
Status: Beta
Brought to you by:
swaldman
From: Dimitri K. <dim...@gm...> - 2013-01-18 03:22:58
|
Hi, I'm trying to use a custom connection tester. I've extended AbstractConnectionTester and then when creating a ComboPooledDataSource I have called: comboPooledDataSource.setConnectionTesterClassName("net.moneyswitch.persistence.cp.TyroMysqlC3P0ConnectionTester") When I start up my application I get an error with the following message: [snip] nested exception is java.beans.PropertyVetoException: Could not instantiate connection tester class with name 'net.moneyswitch.persistence.cp.TyroMysqlC3P0ConnectionTester' I've had a look at the source code and it looks like WrapperConnectionPoolDataSourceBase:setConnectionTesterClassName has the following: public synchronized void setConnectionTesterClassName( String connectionTesterClassName ) throws PropertyVetoException { String oldVal = this.connectionTesterClassName; if ( ! eqOrBothNull( oldVal, connectionTesterClassName ) ) vcs.fireVetoableChange( "connectionTesterClassName", oldVal, connectionTesterClassName ); this.connectionTesterClassName = connectionTesterClassName; } I traced it back to src/codegen/com/mchange/v2/c3p0/impl/WrapperConnectionPoolDataSourceBase.beangen-xml which has: <property> <type>String</type> <name>connectionTesterClassName</name> <default-value>C3P0Config.initializeStringPropertyVar("connectionTesterClassName", C3P0Defaults.connectionTesterClassName())</default-value> <constrained/> <getter><modifiers><modifier>public</modifier><modifier>synchronized</modifier></modifiers></getter> <setter><modifiers><modifier>public</modifier><modifier>synchronized</modifier></modifiers></setter> </property> This property appears to be "<constrained/>". Am I setting up a ConnectionTester the right way? Is there a specific reason why the "connectionTesterClassName" property is constrained? Is it safe to change the beangen file and build my own version or is there a better way? Thank you -- Dimitri |
From: Dimitri K. <dim...@gm...> - 2013-01-18 05:13:55
|
On Fri, Jan 18, 2013 at 2:22 PM, Dimitri Koussa <dim...@gm...> wrote: > When I start up my application I get an error with the following message: > [snip] nested exception is java.beans.PropertyVetoException: Could not > instantiate connection tester class with name > 'net.moneyswitch.persistence.cp.TyroMysqlC3P0ConnectionTester' I've solved the problem but for the benefit of others: My connection tester threw a runtime exception when it was instantiated. Once I fixed that it all worked as expected. -- Dimitri |