I'll let you make the judgement as to whether or not this is a poolman
bug or an idb bug, but here's the scoop. When poolman opens a result
set, it first gets the result set from the original statement (the idb
one). Then, it keeps a copy of the meta data, but copies all the rows
of the resultset into it's own data structure. It then closes the
resultset. The problem here is that when idb gets a resultset, it's
using a temporary table to hold the results, so when it closes it
actually drops this temporary table. This clears out all the column
info. The idb metadata class uses the temporary table to get all the
column info, so when you make this call, a NullPointerException occurs.
I'll look at the latest poolman code to see if this problem is fixed.
We could detach idbResultSetMetaData from the underlying temporary
table, but to me, if the rs is closed, then there's no reason the
metadata should be valid. However, it looks like other drivers aren't
invalidating their metadata on resultset closure, so this may be
something we want to fix.
Thoughts?
Thom
Massimo Ferrari wrote:
>
> All the files are attached.
> Thank you
> Massimo
>
> > Can you attach your poolman.props file?
> >
> > Thanks,
> >
> > Thom
> >
> > Massimo Ferrari wrote:
> > >
> > > Hi,
> > > I'm using IDB 3.26 and PoolMan 1.4.1
> > >
> > > the following test code causes an error when I try to get the number of
> > > columns from the ResultSetMetaData.
> > > The same code without poolman runs correctly.
> > > Any idea?
> > > Thank you in advance
> > > Massimo
> >
-----------------------------------------------------------------------------
To unsubscribe from this mailing list, send email to majordomo@enhydra.org
with the text "unsubscribe instantdb" in the body of the email.
If you have other questions regarding this mailing list, send email to
the list admin at owner-instantdb@enhydra.org.
|