I've got a question about setting up a connection pool using DBCP.
Back when I was testing the nightly build from 20020404, I could swear
I was getting back a PooledDataSource.  Now with todays build
(20020523), I am getting back a BasicDatasource.

The code that I have looks like:

        DataSource ds = null;
        try {
            Context initCtx = new InitialContext();
            Context envCtx = (Context) initCtx.lookup("java:comp/env");
            if (envCtx!=null) {
                ds = (DataSource)envCtx.lookup("jdbc/utasklistDB");
                System.out.println("The Datasource is: " + ds);
            }
        } 
        catch (NamingException ne) {
            System.out.println("JNDI Lookup Failed: " + ne.getMessage());    
        }
        return ds.getConnection();

What prints out on that first println is:
The Datasource is: org.apache.commons.dbcp.BasicDataSource@22220f

Then, when I attempt to return the connection, I end up getting the
following error:

java.lang.NullPointerException
        at java.util.Hashtable.put(Hashtable.java:380)
        at org.apache.commons.dbcp.BasicDataSource.createDataSource(Unknown Source)
        at org.apache.commons.dbcp.BasicDataSource.getConnection(Unknown Source)
        at 
com.syntegra.unilever.tasklist.data.ConnectionManager.getConnection(ConnectionManager.java:73)
        at com.syntegra.unilever.tasklist.data.Manager.openConn(Manager.java:22)
        at 
com.syntegra.unilever.tasklist.data.UserManager.getUserByUsername(UserManager.java:201)
        at 
com.syntegra.unilever.tasklist.services.ValidationServices.validateUser(ValidationServices.java:91)
        at 
com.syntegra.unilever.tasklist.services.ValidationServices.validateUser(ValidationServices.java:69)
        at 
com.syntegra.unilever.tasklist.MasterEventGateway$LocalRequestHandler.handleControlEvent(MasterEventGateway.java:80)
        at 
org.enhydra.barracuda.core.event.DefaultBaseEventListener.handleEvent(DefaultBaseEventListener.java:64)
        at 
org.enhydra.barracuda.core.event.DefaultEventDispatcher.notifyListeners(DefaultEventDispatcher.java:381)
        at 
org.enhydra.barracuda.core.event.DefaultEventDispatcher.dispatch(DefaultEventDispatcher.java:183)
        at 
org.enhydra.barracuda.core.event.DefaultEventDispatcher.dispatchEvent(DefaultEventDispatcher.java:103)
        at 
org.enhydra.barracuda.core.event.DefaultEventBroker.dispatchEvent(DefaultEventBroker.java:488)
        at 
org.enhydra.barracuda.core.event.ApplicationGateway.handleDefaultExt(ApplicationGateway.java:413)
        at 
org.enhydra.barracuda.core.event.ApplicationGateway.handleDefault(ApplicationGateway.java:239)
        at 
org.enhydra.barracuda.core.event.ApplicationGateway.doGet(ApplicationGateway.java:632)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown 
Source)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
        at org.apache.catalina.core.StandardWrapperValve.invoke(Unknown Source)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Unknown
 Source)
        at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source)
        at org.apache.catalina.core.ContainerBase.invoke(Unknown Source)
        at org.apache.catalina.core.StandardContextValve.invoke(Unknown Source)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Unknown
 Source)
        at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source)
        at org.apache.catalina.core.ContainerBase.invoke(Unknown Source)
        at org.apache.catalina.core.StandardContext.invoke(Unknown Source)
        at org.apache.catalina.core.StandardHostValve.invoke(Unknown Source)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Unknown
 Source)
        at org.apache.catalina.valves.ErrorDispatcherValve.invoke(Unknown Source)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Unknown
 Source)
        at org.apache.catalina.valves.ErrorReportValve.invoke(Unknown Source)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Unknown
 Source)
        at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source)
        at org.apache.catalina.core.ContainerBase.invoke(Unknown Source)
        at org.apache.catalina.core.StandardEngineValve.invoke(Unknown Source)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(Unknown
 Source)
        at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source)
        at org.apache.catalina.core.ContainerBase.invoke(Unknown Source)
        at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:458)
        at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:551)
        at java.lang.Thread.run(Thread.java:484)


So...

First, should BasicDataSource rather than PooledDataSource be
returned?  If so, why?  How do I utilize a database pool?

Second, why the null pointer at ds.getConnection()?  I wasn't getting
that before in my previous nightly build, although I was having other
issues where it wasn't working, which I won't get into here, but ds.getConnection() 
did return a
Connection object rather than throw a null pointer exception.

Any hints as to what is up with this?  I realize that this is alpha
software, but I'd like to know if I'm even on the right track or if
something in the design has changed...and maybe I should be using DBCP
some different way than I am now???

Jake


-- 
Best regards,
 Jacob                          mailto:[EMAIL PROTECTED]


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to