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]>