Just right! Should be fixed by latest CVS commit...
Oliver
On Mon, 22 Nov 2004 15:21:29 +0100, Unico Hommes <[EMAIL PROTECTED]> wrote:
> There is actually another - more serious - way that a connection will
> not be released during AbstractJDBCStore.retrieveRevisionContent. This
> is whenever it throws an exception. The client code has no way to
> release the connection in that case because although a connection was
> assigned it does not hold a reference to the NodeRevisionContent to
> cause it to be released.
>
> --
> Unico
>
>
>
> Unico Hommes wrote:
>
> > Hi James,
> >
> > Reply button broken? ;-)
> >
> > I prefer your solution to adding a close method NodeRevisionContent.
> > Because close would only be functional in a very small number of
> > cases. During normal useage - using the input stream (and closing it),
> > or getting the byte array - calling close would be superfluous.
> > Another possible solution is to subclass NodeRevisionContent and
> > lazy-initialize the input stream whenever it is used. This probably
> > would need a change to RDBMSAdapter interface (retrieveRevisionContent
> > should return an InputStream instead of NodeRevisionContent) and some
> > changes to NodeRevisionContent. WDYT?
> >
> > --
> > Unico
> >
> >
> > Oliver Zeigermann wrote:
> >
> >> ---------- Forwarded message ----------
> >> From: James Mason <[EMAIL PROTECTED]>
> >> Date: Fri, 19 Nov 2004 19:41:24 -0800
> >> Subject: Re: Unreleased database connections reading namespace
> >> To: [EMAIL PROTECTED]
> >>
> >>
> >> How about adding this to the javadoc for ContentHelper.retrieve() and
> >> NodeRevisionContent?
> >>
> >> -James
> >>
> >>
> >>
> >> On Fri, 2004-11-19 at 17:54 +0100, Oliver Zeigermann wrote:
> >>
> >>
> >>> Ah, this makes it clear!
> >>>
> >>> I know it is really not obvious that you have to close a stream you do
> >>> not even touch, but there really is no better solution I am afraid :(
> >>>
> >>> Same thing with the tx file store...
> >>>
> >>> Oliver
> >>>
> >>> On Fri, 19 Nov 2004 17:51:23 +0100, Unico Hommes <[EMAIL PROTECTED]>
> >>> wrote:
> >>>
> >>>
> >>>> OK, I see now. It doesn't matter if you actually decide to use the
> >>>> NodeRevisionContent object. Once you retrieve it from the Content
> >>>> helper
> >>>> the stream must somehow be closed. I was conditionally using it and so
> >>>> connections were left open.
> >>>>
> >>>> Anyway, thanks again Oliver, you saved my day :-)
> >>>>
> >>>> --
> >>>> Unico
> >>>>
> >>>>
> >>>>
> >>>> Unico Hommes wrote:
> >>>>
> >>>>
> >>>>
> >>>>> Dude it worked! Thanks!
> >>>>>
> >>>>> I am reading the NodeRevisionContent like so:
> >>>>>
> >>>>> InputStream in = null;
> >>>>> try {
> >>>>> in = new ByteArrayInputStream(content.getContentBytes());
> >>>>> }
> >>>>> finally {
> >>>>> in.close();
> >>>>> }
> >>>>>
> >>>>> Perhaps something goes wrong during
> >>>>> NodeRevisionContent.getContentBytes() ? But it looks like that method
> >>>>> correctly closes the InputStream though.
> >>>>>
> >>>>> --
> >>>>> Unico
> >>>>>
> >>>>> Oliver Zeigermann wrote:
> >>>>>
> >>>>>
> >>>>>
> >>>>>> If you are not using compressed there will be an input stream in
> >>>>>> content that is the one from the JDBC driver and *must* be closed to
> >>>>>> close the connection. Try enabling compression if not already
> >>>>>> done and
> >>>>>> see if this changes anything.
> >>>>>>
> >>>>>> Oliver
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>>> For additional commands, e-mail: [EMAIL PROTECTED]
> >>>>
> >>>>
> >>>>
> >>>
> >>> ---------------------------------------------------------------------
> >>>
> >>
> >>
> >>
> >>
> >>
> >>> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>> For additional commands, e-mail: [EMAIL PROTECTED]
> >>>
> >>>
> >>>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> >>
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]