It's being thrown from ActionServlet.initApplicationDataSources()
The log statement is coming from a resource file.
@see apache\struts\action\ActionResources.properties
line 10
dataSource.init=Initializing application data source {0}
I'm still speculating as to which line of code is the culprit from struts
servlet initialization.
Either a mis-configuration or a bug in either dbcp or beanutils.
JM
> -----Original Message-----
> From: Mark Johnson [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, May 14, 2002 5:54 AM
> To: [EMAIL PROTECTED]
> Subject: suspected bug configuring ActionServlet for BasicDataSource
>
>
> I get a NullPointerException when attempting to configure ActionServlet
> as follows (struts nightly build 20020508, struts-config_1_1.dtd):
> <data-sources>
>
> <data-source
> className="org.apache.struts.config.DataSourceConfig"
> key="MyBasicDataSource"
> type="org.apache.commons.dbcp.BasicDataSource">
>
> <set-property property="defaultAutoCommit" value="false"/>
> <set-property property="driverClassName"
> value="org.postgresql.Driver"/>
> <set-property property="maxActive" value="4"/>
> <set-property property="password" value=""/>
> <set-property property="url" value="jdbc:postgresql:mystraw"/>
> <set-property property="user" value="postgres"/>
>
> </data-source>
>
> </data-sources>
>
> I believe the above should work. Why? Because a little test application
> (Pgtest) with analogous code, ie:
> BasicDataSource ds = new BasicDataSource();
> ds.setDefaultAutoCommit(false);
> (and so forth)
> produces a valid ResultSet, when run like this:
> $ java -cp
> /opt/j2sdk1.4.0/lib:commons-collections.jar:commons-dbcp.jar:commo
> ns-pool.jar:pgjdbc2.jar:. Pgtest
>
> Running my webapp with log4j set to DEBUG, the above struts-config.xml
> fragment appears to pass through Digester just fine... but then:
>
> ...snip...
> 2886 [main] DEBUG org.apache.commons.digester.Digester.sax -
> endDocument()
> 2902 [main] DEBUG org.apache.struts.action.ActionServlet -
> Initializing applica
> tion path '' message resources from 'com.myblank.ApplicationResources'
> 2904 [main] DEBUG org.apache.struts.action.ActionServlet -
> Initializing applica
> tion path '' data sources
> 2910 [main] DEBUG org.apache.struts.action.ActionServlet -
> Initializing applica
> tion path '' data source 'MyBasicDataSource'
> 2931 [main] DEBUG org.apache.commons.beanutils.BeanUtils -
> BeanUtils.populate(o
> rg.apache.commons.dbcp.BasicDataSource@ea48be,
> {url=jdbc:postgresql:mystraw, use
> r=postgres, password=, driverClassName=org.postgresql.Driver,
> maxActive=4, defau
> ltAutoCommit=false})
> 2932 [main] DEBUG org.apache.commons.beanutils.BeanUtils -
> setProperty(org.ap
> ache.commons.dbcp.BasicDataSource@ea48be, url, jdbc:postgresql:mystraw)
> 2955 [main] DEBUG org.apache.commons.beanutils.ConvertUtils -
> Convert string 'j
> dbc:postgresql:mystraw' to class 'java.lang.String'
> 2955 [main] DEBUG org.apache.commons.beanutils.ConvertUtils -
> Using converter
> org.apache.commons.beanutils.converters.StringConverter@d95da8
> 2955 [main] DEBUG org.apache.commons.beanutils.BeanUtils -
> setProperty(org.ap
> ache.commons.dbcp.BasicDataSource@ea48be, user, postgres)
> 2961 [main] DEBUG org.apache.commons.beanutils.BeanUtils -
> setProperty(org.ap
> ache.commons.dbcp.BasicDataSource@ea48be, password, )
> 2962 [main] DEBUG org.apache.commons.beanutils.ConvertUtils -
> Convert string ''
> to class 'java.lang.String'
> 2962 [main] DEBUG org.apache.commons.beanutils.ConvertUtils -
> Using converter
> org.apache.commons.beanutils.converters.StringConverter@d95da8
> 2962 [main] DEBUG org.apache.commons.beanutils.BeanUtils -
> setProperty(org.ap
> ache.commons.dbcp.BasicDataSource@ea48be, driverClassName,
> org.postgresql.Driver
> )
> 2962 [main] DEBUG org.apache.commons.beanutils.ConvertUtils -
> Convert string 'o
> rg.postgresql.Driver' to class 'java.lang.String'
> 2962 [main] DEBUG org.apache.commons.beanutils.ConvertUtils -
> Using converter
> org.apache.commons.beanutils.converters.StringConverter@d95da8
> 2962 [main] DEBUG org.apache.commons.beanutils.BeanUtils -
> setProperty(org.ap
> ache.commons.dbcp.BasicDataSource@ea48be, maxActive, 4)
> 2962 [main] DEBUG org.apache.commons.beanutils.ConvertUtils -
> Convert string '4
> ' to class 'int'
> 2962 [main] DEBUG org.apache.commons.beanutils.ConvertUtils -
> Using converter
> org.apache.commons.beanutils.converters.IntegerConverter@65c7f6
> 2963 [main] DEBUG org.apache.commons.beanutils.BeanUtils -
> setProperty(org.ap
> ache.commons.dbcp.BasicDataSource@ea48be, defaultAutoCommit, false)
> 2963 [main] DEBUG org.apache.commons.beanutils.ConvertUtils -
> Convert string 'f
> alse' to class 'boolean'
> 2963 [main] DEBUG org.apache.commons.beanutils.ConvertUtils -
> Using converter
> org.apache.commons.beanutils.converters.BooleanConverter@2aea3e
> 3044 [main] ERROR org.apache.struts.action.ActionServlet -
> Initializing applica
> tion data source MyBasicDataSource
> java.lang.NullPointerException
> at java.util.Hashtable.put(Hashtable.java:386)
> at
> org.apache.commons.dbcp.BasicDataSource.createDataSource(Unknown Sour
> ce)
> at
> org.apache.commons.dbcp.BasicDataSource.setLogWriter(Unknown Source)
> at
> org.apache.struts.action.ActionServlet.initApplicationDataSources(Act
> ionServlet.java:884)
> ...snip...
>
> I have been unable to locate the log4j statement that produces the above
> ERROR message.
>
> If you've read this far, your comments will be most welcome.
>
> TIA,
> --
>
> Mark Johnson
> [EMAIL PROTECTED]
>
> --
> To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>