A classloader problem is indeed the likely cause of the problem.

John can you confirm this is the case?
We should document this on the DBCP wiki page.

-- Dirk

Federico Spinazzi wrote:

john tal wrote:

I am refitting existing production code to use dbcp
BasicDataSource for connection pooling instead of a
home grown connection pooler.

A big problem has arisen in that running against
Oracle the dbcp.DelegatingResultSet is returning a
clob which getClass().getName() says is an
oracle.sql.CLOB but instanceof does not recognize as
such.

java.sql.Clob sqlClob = rs.getClob( i + 1 );

String temp = sqlClob.getClass().getName();  // is
'oracle.sql.CLOB'

if(sqlClob instanceof java.sql.Clob) // is TRUE

if(sqlClob instanceof oracle.sql.CLOB)  // is FALSE
when running with dbcp

This code works without using dbcp.

Any ideas?

Well, I'm not sure, but maybe a classloader related problem i.e. the classloader used to load sqlClob class is not the same used to load the class you listed here.
If it is so, the two classes are not the same class. the test against java.sql.Clob gets true because java.* classes are loaded by a classloader who is parent of all the other classloader (well, beside the bootstrap one).


Hope that helps,
Federico


thx


john




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



Reply via email to