The Javahl problem caused by calling dispose() should be fixed in r1153799.

 

@Mark: Can you verify if this solves your problem?

 

If this resolves the problem this fix might need backport to 1.6.

 

                Bert

 

From: Mark Phippard [mailto:markp...@gmail.com] 
Sent: woensdag 3 augustus 2011 20:45
To: Bert Huijben
Cc: Philip Martin; Subversion Development
Subject: Re: Forcing the SQLite db to close?

 

On Wed, Jul 27, 2011 at 3:35 PM, Bert Huijben <b...@qqmail.nl> wrote:



> -----Original Message-----
> From: Philip Martin [mailto:philip.mar...@wandisco.com]
> Sent: woensdag 27 juli 2011 21:23
> To: Mark Phippard
> Cc: Subversion Development
> Subject: Re: Forcing the SQLite db to close?
>
> Mark Phippard <markp...@gmail.com> writes:
>
> > Noticed a problem in Eclipse.  When someone wants to remove a project
> from
> > Eclipse, the .svn folder cannot be deleted because the wc.db file is in
use.
> >  This is because, unlike the command line, when we are using JavaHL the
> > process does not end until someone closes Eclipse.
> >
> > Is there an API we could add to JavaHL or something to tell SVN to close
the
> > DB handles so that the file is not locked?
> >
> > Bert/Stefan, how are you dealing with this problem in your GUI tools?  I
> > know you have access to more API than we have for JavaH, so maybe there
> is
> > already an API and it just needs to be exposed?
>
> There is a private function svn_wc__db_drop_root, I think that does what
> you want.  What do you want the public API to look like?

Or you can close the wc context with svn_wc_context_destroy(). This closes
all contexts at once.
(Clearing the pool with svn_client_ctx_t / svn_wc_context_t has the same
effect).

 

I see that JavaHL has a ClientContext class and the Java code creates a
private instance of this class.  From what I can see in ClientContext.cpp it
stores the svn_client_ctx_t in the global pool.

 

    /* Create a long-lived client context object in the global pool. */

    SVN_JNI_ERR(svn_client_create_context(&persistentCtx,
JNIUtil::getPool()),

                );

 

I wonder if we could simply add a method to JavaHL to destroy this context?
I do not see anywhere that the wc_context is created in JavaHL native code
so not sure if it would be possible to clear the pool used to store those.


-- 
Thanks

Mark Phippard
http://markphip.blogspot.com/

Reply via email to