Thread: Connection pool problem

Connection pool problem

From
Stéphane RIFF
Date:
Hello,

I've create a connection pool with dbcp end another with
Jdbc3PoolingDatasource,
it seems to work well but :
My pool is a eight connections pool, the problem is when i get some
database exception (for example
"constraint violation", "duplicate key on unique index"...) the
connection didn't released to the pool.
After eight exception my application wait for a connection from the pool
which nerver give one because
of the PSQLException thrown.

Does somebody know about this??

Hope it's understandable
Thanks


--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.300 / Virus Database: 266.5.2 - Release Date: 28/02/2005


Re: Connection pool problem

From
Oliver Jowett
Date:
Stéphane RIFF wrote:

> I've create a connection pool with dbcp end another with
> Jdbc3PoolingDatasource,
> it seems to work well but :
> My pool is a eight connections pool, the problem is when i get some
> database exception (for example
> "constraint violation", "duplicate key on unique index"...) the
> connection didn't released to the pool.
> After eight exception my application wait for a connection from the pool
> which nerver give one because
> of the PSQLException thrown.

Perhaps your code does not release the connection to the pool correctly
when handling the exception?

The usual way to deal with this is to put connection releasing in a
finally block, so it's sure to be run however you exit the try{} block.

If it's not that, I'd need to see your code to debug this further.

-O

Re: Connection pool problem

From
Stéphane RIFF
Date:
You're right i forgot to call close() function in the catch block
Thanks

But know i sometimes get null connections from the datasource with
exception like this :
2005-03-01 12:23:44,156 : [WARN] ConnectionPool -
org.postgresql.util.PSQLException: The connection attempt failed because
Exception: java.net.BindException: Address already in use: connect
Stack Trace:

java.net.BindException: Address already in use: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
    at java.net.Socket.connect(Socket.java:452)
    at java.net.Socket.connect(Socket.java:402)
    at java.net.Socket.<init>(Socket.java:309)
    at java.net.Socket.<init>(Socket.java:124)
    at org.postgresql.core.PGStream.<init>(PGStream.java:47)
    at
org.postgresql.jdbc1.AbstractJdbc1Connection.openConnection(AbstractJdbc1Connection.java:197)
    at org.postgresql.Driver.connect(Driver.java:139)
    at java.sql.DriverManager.getConnection(DriverManager.java:512)
    at java.sql.DriverManager.getConnection(DriverManager.java:171)
    at
org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:48)
    at
org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
    at
org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:771)
    at
org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95)
    at
fr.cerene.geosiara.gprs.receiver.ConnectionPool.getConnection(ConnectionPool.java:97)
    at
fr.cerene.geosiara.gprs.receiver.SQLoader.saveTrame(SQLoader.java:122)
    at fr.cerene.geosiara.gprs.receiver.SQLoader$1.run(SQLoader.java:219)
    at java.lang.Thread.run(Thread.java:534)
End of Stack Trace

2005-03-01 12:23:44,156 : [WARN] SQLoader - java.lang.NullPointerException

I saw on the web that this can happened when the max number of connection
is reach but in my case postgresql is configure with 100 connections, in
the process list i had  ~50 connections.

Don't know what i can do...

Oliver Jowett wrote:

> Stéphane RIFF wrote:
>
>> I've create a connection pool with dbcp end another with
>> Jdbc3PoolingDatasource,
>> it seems to work well but :
>> My pool is a eight connections pool, the problem is when i get some
>> database exception (for example
>> "constraint violation", "duplicate key on unique index"...) the
>> connection didn't released to the pool.
>> After eight exception my application wait for a connection from the
>> pool which nerver give one because
>> of the PSQLException thrown.
>
>
> Perhaps your code does not release the connection to the pool
> correctly when handling the exception?
>
> The usual way to deal with this is to put connection releasing in a
> finally block, so it's sure to be run however you exit the try{} block.
>
> If it's not that, I'd need to see your code to debug this further.
>
> -O
>
>



--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.300 / Virus Database: 266.5.2 - Release Date: 28/02/2005


Re: Connection pool problem

From
Dave Cramer
Date:
Stephane,

You didn't read his email carefully enough. Close your connections in a
FINALLY block. That way they are guaranteed to be closed

as far as your exception below, that is very strange. If you are out of
connections on the server then you should get that error
not a bind exception ???

Dave


Stéphane RIFF wrote:

> You're right i forgot to call close() function in the catch block
> Thanks
>
> But know i sometimes get null connections from the datasource with
> exception like this :
> 2005-03-01 12:23:44,156 : [WARN] ConnectionPool -
> org.postgresql.util.PSQLException: The connection attempt failed
> because Exception: java.net.BindException: Address already in use:
> connect
> Stack Trace:
>
> java.net.BindException: Address already in use: connect
>    at java.net.PlainSocketImpl.socketConnect(Native Method)
>    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
>    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
>    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
>    at java.net.Socket.connect(Socket.java:452)
>    at java.net.Socket.connect(Socket.java:402)
>    at java.net.Socket.<init>(Socket.java:309)
>    at java.net.Socket.<init>(Socket.java:124)
>    at org.postgresql.core.PGStream.<init>(PGStream.java:47)
>    at
> org.postgresql.jdbc1.AbstractJdbc1Connection.openConnection(AbstractJdbc1Connection.java:197)
>
>    at org.postgresql.Driver.connect(Driver.java:139)
>    at java.sql.DriverManager.getConnection(DriverManager.java:512)
>    at java.sql.DriverManager.getConnection(DriverManager.java:171)
>    at
> org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:48)
>
>    at
> org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
>
>    at
> org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:771)
>
>    at
> org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95)
>
>    at
> fr.cerene.geosiara.gprs.receiver.ConnectionPool.getConnection(ConnectionPool.java:97)
>
>    at
> fr.cerene.geosiara.gprs.receiver.SQLoader.saveTrame(SQLoader.java:122)
>    at fr.cerene.geosiara.gprs.receiver.SQLoader$1.run(SQLoader.java:219)
>    at java.lang.Thread.run(Thread.java:534)
> End of Stack Trace
>
> 2005-03-01 12:23:44,156 : [WARN] SQLoader -
> java.lang.NullPointerException
>
> I saw on the web that this can happened when the max number of connection
> is reach but in my case postgresql is configure with 100 connections, in
> the process list i had  ~50 connections.
>
> Don't know what i can do...
>
> Oliver Jowett wrote:
>
>> Stéphane RIFF wrote:
>>
>>> I've create a connection pool with dbcp end another with
>>> Jdbc3PoolingDatasource,
>>> it seems to work well but :
>>> My pool is a eight connections pool, the problem is when i get some
>>> database exception (for example
>>> "constraint violation", "duplicate key on unique index"...) the
>>> connection didn't released to the pool.
>>> After eight exception my application wait for a connection from the
>>> pool which nerver give one because
>>> of the PSQLException thrown.
>>
>>
>>
>> Perhaps your code does not release the connection to the pool
>> correctly when handling the exception?
>>
>> The usual way to deal with this is to put connection releasing in a
>> finally block, so it's sure to be run however you exit the try{} block.
>>
>> If it's not that, I'd need to see your code to debug this further.
>>
>> -O
>>
>>
>
>
>

--
Dave Cramer
http://www.postgresintl.com
519 939 0336
ICQ#14675561


Re: [SPAM] - Re: Connection pool problem - Found word(s) list

From
Stéphane RIFF
Date:
Yes sorry that's what i want to say "finally" blocks
and that's what i did.

For the exception i don"t have any more idea yet
Dave Cramer wrote:

> Stephane,
>
> You didn't read his email carefully enough. Close your connections in
> a FINALLY block. That way they are guaranteed to be closed
>
> as far as your exception below, that is very strange. If you are out
> of connections on the server then you should get that error
> not a bind exception ???
>
> Dave
>
>
> Stéphane RIFF wrote:
>
>> You're right i forgot to call close() function in the catch block
>> Thanks
>>
>> But know i sometimes get null connections from the datasource with
>> exception like this :
>> 2005-03-01 12:23:44,156 : [WARN] ConnectionPool -
>> org.postgresql.util.PSQLException: The connection attempt failed
>> because Exception: java.net.BindException: Address already in use:
>> connect
>> Stack Trace:
>>
>> java.net.BindException: Address already in use: connect
>>    at java.net.PlainSocketImpl.socketConnect(Native Method)
>>    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
>>    at
>> java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
>>    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
>>    at java.net.Socket.connect(Socket.java:452)
>>    at java.net.Socket.connect(Socket.java:402)
>>    at java.net.Socket.<init>(Socket.java:309)
>>    at java.net.Socket.<init>(Socket.java:124)
>>    at org.postgresql.core.PGStream.<init>(PGStream.java:47)
>>    at
>> org.postgresql.jdbc1.AbstractJdbc1Connection.openConnection(AbstractJdbc1Connection.java:197)
>>
>>    at org.postgresql.Driver.connect(Driver.java:139)
>>    at java.sql.DriverManager.getConnection(DriverManager.java:512)
>>    at java.sql.DriverManager.getConnection(DriverManager.java:171)
>>    at
>> org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:48)
>>
>>    at
>> org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
>>
>>    at
>> org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:771)
>>
>>    at
>> org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95)
>>
>>    at
>> fr.cerene.geosiara.gprs.receiver.ConnectionPool.getConnection(ConnectionPool.java:97)
>>
>>    at
>> fr.cerene.geosiara.gprs.receiver.SQLoader.saveTrame(SQLoader.java:122)
>>    at fr.cerene.geosiara.gprs.receiver.SQLoader$1.run(SQLoader.java:219)
>>    at java.lang.Thread.run(Thread.java:534)
>> End of Stack Trace
>>
>> 2005-03-01 12:23:44,156 : [WARN] SQLoader -
>> java.lang.NullPointerException
>>
>> I saw on the web that this can happened when the max number of
>> connection
>> is reach but in my case postgresql is configure with 100 connections, in
>> the process list i had  ~50 connections.
>>
>> Don't know what i can do...
>>
>> Oliver Jowett wrote:
>>
>>> Stéphane RIFF wrote:
>>>
>>>> I've create a connection pool with dbcp end another with
>>>> Jdbc3PoolingDatasource,
>>>> it seems to work well but :
>>>> My pool is a eight connections pool, the problem is when i get some
>>>> database exception (for example
>>>> "constraint violation", "duplicate key on unique index"...) the
>>>> connection didn't released to the pool.
>>>> After eight exception my application wait for a connection from the
>>>> pool which nerver give one because
>>>> of the PSQLException thrown.
>>>
>>>
>>>
>>>
>>> Perhaps your code does not release the connection to the pool
>>> correctly when handling the exception?
>>>
>>> The usual way to deal with this is to put connection releasing in a
>>> finally block, so it's sure to be run however you exit the try{} block.
>>>
>>> If it's not that, I'd need to see your code to debug this further.
>>>
>>> -O
>>>
>>>
>>
>>
>>
>



--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.300 / Virus Database: 266.5.2 - Release Date: 28/02/2005


Re: Connection pool problem

From
Oliver Jowett
Date:
Stéphane RIFF wrote:

> 2005-03-01 12:23:44,156 : [WARN] SQLoader - java.lang.NullPointerException

Can you get a stack trace for this exception? (the NPE, not the earlier one)

-O

Re: Connection pool problem

From
Guillaume Cottenceau
Date:
Oliver Jowett <oliver 'at' opencloud.com> writes:

> Stéphane RIFF wrote:
>
> > 2005-03-01 12:23:44,156 : [WARN] SQLoader - java.lang.NullPointerException
>
> Can you get a stack trace for this exception? (the NPE, not the earlier one)

Stephan - in case, here's a method to get a human readable
stacktrace given an Exception object, if you don't use java 1.5:

    public static String backtrace( Exception e ) {
        StackTraceElement[] trace = e.getStackTrace();
        StringBuffer sb = new StringBuffer();
        for ( int i = 2; i < trace.length; i++ ) {
            sb.append( "\t" ).append( trace[i].toString() ).append( "\n" );
        }
        return sb.toString();
    }

--
Guillaume Cottenceau

Re: Connection pool problem

From
Stéphane RIFF
Date:
Here is the NullPointerExceptionStack trace
java.lang.NullPointerException
        at
fr.cerene.geosiara.gprs.receiver.SQLoader.saveTrame(SQLoader.java:139)
        at
fr.cerene.geosiara.gprs.receiver.SQLoader$1.run(SQLoader.java:229)
        at java.lang.Thread.run(Thread.java:534)

fr.cerene.geosiara.gprs.receiver.SQLoader.saveTrame(SQLoader.java:139)
        fr.cerene.geosiara.gprs.receiver.SQLoader$1.run(SQLoader.java:229)
        java.lang.Thread.run(Thread.java:534)

but it didn't give more information on the last exception
........
Thanks

Guillaume Cottenceau wrote:

>Oliver Jowett <oliver 'at' opencloud.com> writes:
>
>
>
>>Stéphane RIFF wrote:
>>
>>
>>
>>>2005-03-01 12:23:44,156 : [WARN] SQLoader - java.lang.NullPointerException
>>>
>>>
>>Can you get a stack trace for this exception? (the NPE, not the earlier one)
>>
>>
>
>Stephan - in case, here's a method to get a human readable
>stacktrace given an Exception object, if you don't use java 1.5:
>
>    public static String backtrace( Exception e ) {
>        StackTraceElement[] trace = e.getStackTrace();
>        StringBuffer sb = new StringBuffer();
>        for ( int i = 2; i < trace.length; i++ ) {
>            sb.append( "\t" ).append( trace[i].toString() ).append( "\n" );
>        }
>        return sb.toString();
>    }
>
>
>



--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.300 / Virus Database: 266.5.7 - Release Date: 01/03/2005


Re: Connection pool problem

From
Stéphane RIFF
Date:
Here is another Stack trace, i got when
doing DriverManager.setLogWriter() :

DriverManager.getConnection("jdbc:postgresql://200.200.200.34:5432/geosiaradev")
    trying
driver[className=org.postgresql.Driver,org.postgresql.Driver@11ddcde]
org.postgresql.util.PSQLException
        at
org.postgresql.jdbc1.AbstractJdbc1Connection.openConnection(AbstractJdbc1Connection.java:208)
        at org.postgresql.Driver.connect(Driver.java:139)
        at java.sql.DriverManager.getConnection(DriverManager.java:512)
        at java.sql.DriverManager.getConnection(DriverManager.java:171)
        at
org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:48)
        at
org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
        at
org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:771)
        at
org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95)
        at
fr.cerene.geosiara.gprs.receiver.ConnectionPool.getConnection(ConnectionPool.java:101)
        at
fr.cerene.geosiara.gprs.receiver.SQLoader.saveTrame2(SQLoader.java:210)
        at
fr.cerene.geosiara.gprs.receiver.SQLoader$1.run(SQLoader.java:317)
        at java.lang.Thread.run(Thread.java:534)
getConnection failed: org.postgresql.util.PSQLException: The connection
attempt failed because Exception: java.net.BindException: Address
already in use: connect
Stack Trace:

java.net.BindException: Address already in use: connect
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
        at
java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
        at java.net.Socket.connect(Socket.java:452)
        at java.net.Socket.connect(Socket.java:402)
        at java.net.Socket.<init>(Socket.java:309)
        at java.net.Socket.<init>(Socket.java:124)
        at org.postgresql.core.PGStream.<init>(PGStream.java:47)
        at
org.postgresql.jdbc1.AbstractJdbc1Connection.openConnection(AbstractJdbc1Connection.java:197)
        at org.postgresql.Driver.connect(Driver.java:139)
        at java.sql.DriverManager.getConnection(DriverManager.java:512)
        at java.sql.DriverManager.getConnection(DriverManager.java:171)
        at
org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:48)
        at
org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
        at
org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:771)
        at
org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95)
        at
fr.cerene.geosiara.gprs.receiver.ConnectionPool.getConnection(ConnectionPool.java:101)
        at
fr.cerene.geosiara.gprs.receiver.SQLoader.saveTrame2(SQLoader.java:210)
        at
fr.cerene.geosiara.gprs.receiver.SQLoader$1.run(SQLoader.java:317)
        at java.lang.Thread.run(Thread.java:534)
End of Stack Trace

java.lang.NullPointerException
        at
fr.cerene.geosiara.gprs.receiver.SQLoader.saveTrame2(SQLoader.java:227)
        at
fr.cerene.geosiara.gprs.receiver.SQLoader$1.run(SQLoader.java:317)
        at java.lang.Thread.run(Thread.java:534)


Stéphane RIFF wrote:

> Here is the NullPointerExceptionStack trace
> java.lang.NullPointerException
>        at
> fr.cerene.geosiara.gprs.receiver.SQLoader.saveTrame(SQLoader.java:139)
>        at
> fr.cerene.geosiara.gprs.receiver.SQLoader$1.run(SQLoader.java:229)
>        at java.lang.Thread.run(Thread.java:534)
>
> fr.cerene.geosiara.gprs.receiver.SQLoader.saveTrame(SQLoader.java:139)
>        fr.cerene.geosiara.gprs.receiver.SQLoader$1.run(SQLoader.java:229)
>        java.lang.Thread.run(Thread.java:534)
>
> but it didn't give more information on the last exception
> ........
> Thanks
>
> Guillaume Cottenceau wrote:
>
>> Oliver Jowett <oliver 'at' opencloud.com> writes:
>>
>>
>>
>>> Stéphane RIFF wrote:
>>>
>>>
>>>
>>>> 2005-03-01 12:23:44,156 : [WARN] SQLoader -
>>>> java.lang.NullPointerException
>>>>
>>>
>>> Can you get a stack trace for this exception? (the NPE, not the
>>> earlier one)
>>>
>>
>>
>> Stephan - in case, here's a method to get a human readable
>> stacktrace given an Exception object, if you don't use java 1.5:
>>
>>    public static String backtrace( Exception e ) {
>>        StackTraceElement[] trace = e.getStackTrace();
>>        StringBuffer sb = new StringBuffer();
>>        for ( int i = 2; i < trace.length; i++ ) {
>>            sb.append( "\t" ).append( trace[i].toString() ).append(
>> "\n" );
>>        }
>>        return sb.toString();
>>    }
>>
>>
>>
>
>
>



--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.300 / Virus Database: 266.5.7 - Release Date: 01/03/2005


Re: Connection pool problem

From
Stéphane RIFF
Date:
I finally get it to work. The problem doesn't come from
jdbc nor dbcp, it's because i use cygwin to connect to gnome
on the linux box. It seems that there are conflict between cygwyn ports
and jdbc ports
Don't have a real explanation but if cygwin not running everything works
in jdbc & dbcp
Bye

Stéphane RIFF wrote:

> Here is another Stack trace, i got when
> doing DriverManager.setLogWriter() :
>
> DriverManager.getConnection("jdbc:postgresql://200.200.200.34:5432/geosiaradev")
>
>    trying
> driver[className=org.postgresql.Driver,org.postgresql.Driver@11ddcde]
> org.postgresql.util.PSQLException
>        at
> org.postgresql.jdbc1.AbstractJdbc1Connection.openConnection(AbstractJdbc1Connection.java:208)
>
>        at org.postgresql.Driver.connect(Driver.java:139)
>        at java.sql.DriverManager.getConnection(DriverManager.java:512)
>        at java.sql.DriverManager.getConnection(DriverManager.java:171)
>        at
> org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:48)
>
>        at
> org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
>
>        at
> org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:771)
>
>        at
> org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95)
>
>        at
> fr.cerene.geosiara.gprs.receiver.ConnectionPool.getConnection(ConnectionPool.java:101)
>
>        at
> fr.cerene.geosiara.gprs.receiver.SQLoader.saveTrame2(SQLoader.java:210)
>        at
> fr.cerene.geosiara.gprs.receiver.SQLoader$1.run(SQLoader.java:317)
>        at java.lang.Thread.run(Thread.java:534)
> getConnection failed: org.postgresql.util.PSQLException: The
> connection attempt failed because Exception: java.net.BindException:
> Address already in use: connect
> Stack Trace:
>
> java.net.BindException: Address already in use: connect
>        at java.net.PlainSocketImpl.socketConnect(Native Method)
>        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
>        at
> java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
>        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
>        at java.net.Socket.connect(Socket.java:452)
>        at java.net.Socket.connect(Socket.java:402)
>        at java.net.Socket.<init>(Socket.java:309)
>        at java.net.Socket.<init>(Socket.java:124)
>        at org.postgresql.core.PGStream.<init>(PGStream.java:47)
>        at
> org.postgresql.jdbc1.AbstractJdbc1Connection.openConnection(AbstractJdbc1Connection.java:197)
>
>        at org.postgresql.Driver.connect(Driver.java:139)
>        at java.sql.DriverManager.getConnection(DriverManager.java:512)
>        at java.sql.DriverManager.getConnection(DriverManager.java:171)
>        at
> org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:48)
>
>        at
> org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
>
>        at
> org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:771)
>
>        at
> org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95)
>
>        at
> fr.cerene.geosiara.gprs.receiver.ConnectionPool.getConnection(ConnectionPool.java:101)
>
>        at
> fr.cerene.geosiara.gprs.receiver.SQLoader.saveTrame2(SQLoader.java:210)
>        at
> fr.cerene.geosiara.gprs.receiver.SQLoader$1.run(SQLoader.java:317)
>        at java.lang.Thread.run(Thread.java:534)
> End of Stack Trace
>
> java.lang.NullPointerException
>        at
> fr.cerene.geosiara.gprs.receiver.SQLoader.saveTrame2(SQLoader.java:227)
>        at
> fr.cerene.geosiara.gprs.receiver.SQLoader$1.run(SQLoader.java:317)
>        at java.lang.Thread.run(Thread.java:534)
>
>
> Stéphane RIFF wrote:
>
>> Here is the NullPointerExceptionStack trace
>> java.lang.NullPointerException
>>        at
>> fr.cerene.geosiara.gprs.receiver.SQLoader.saveTrame(SQLoader.java:139)
>>        at
>> fr.cerene.geosiara.gprs.receiver.SQLoader$1.run(SQLoader.java:229)
>>        at java.lang.Thread.run(Thread.java:534)
>>
>> fr.cerene.geosiara.gprs.receiver.SQLoader.saveTrame(SQLoader.java:139)
>>
>> fr.cerene.geosiara.gprs.receiver.SQLoader$1.run(SQLoader.java:229)
>>        java.lang.Thread.run(Thread.java:534)
>>
>> but it didn't give more information on the last exception
>> ........
>> Thanks
>>
>> Guillaume Cottenceau wrote:
>>
>>> Oliver Jowett <oliver 'at' opencloud.com> writes:
>>>
>>>
>>>
>>>> Stéphane RIFF wrote:
>>>>
>>>>
>>>>
>>>>> 2005-03-01 12:23:44,156 : [WARN] SQLoader -
>>>>> java.lang.NullPointerException
>>>>>
>>>>
>>>>
>>>> Can you get a stack trace for this exception? (the NPE, not the
>>>> earlier one)
>>>>
>>>
>>>
>>>
>>> Stephan - in case, here's a method to get a human readable
>>> stacktrace given an Exception object, if you don't use java 1.5:
>>>
>>>    public static String backtrace( Exception e ) {
>>>        StackTraceElement[] trace = e.getStackTrace();
>>>        StringBuffer sb = new StringBuffer();
>>>        for ( int i = 2; i < trace.length; i++ ) {
>>>            sb.append( "\t" ).append( trace[i].toString() ).append(
>>> "\n" );
>>>        }
>>>        return sb.toString();
>>>    }
>>>
>>>
>>>
>>
>>
>>
>
>
>