Philip Martin <philip@codematters.co.uk> wrote on 11/02/2005 03:47:19 PM:
> Mark Phippard <markp@softlanding.com> writes:
>
> > Looking at the history of the code, however, wouldn't really explain
what
> > has changed between 1.2 and 1.3 that would cause a new problem. This
code
> > was all present in 1.2 and earlier.
>
> This is low level initialisation code, perhaps the higher level code
> now calls it more often so provoking a race? Or perhaps the higher
> level code used to have some bottleneck that effectively serialised
> the initialisation and that has now been removed? I don't do Java at
> all, I'm just guessing.
I think I have found a workaround to this problem. I basically started
over with my 1.3 integration and did it one piece at a time. The problem
resurfaced when I added the code to Subclipse to call the new methods for
the SVN_ASP_DOT_NET_HACK feature. I believe it is some sort of a
threading problem. Take checkout as an example. I think what would
happen is I would start a checkout and the folder and first file would
come down. This would cause the notification framework to notify
Subclipse of the new file. We in turn notify Eclipse, which I think
notifies our status cache (probably in a different thread). That code
then sees the ".svn or _svn folder" and calls one of these new library
methods to see if it is an admin directory.
I seem to have worked around the problem by calling
getAdminDirectoryName() at startup when I know there is no other activity.
I then just cache it (which I was doing anyway for performance). I then
had to implement my own isAdminDirectoryName() which returns true if the
folder name is ".svn" or whatever the getAdminDirectoryName() value is.
This avoids doing any library calls in the middle of operations.
At least this is all my theory. I will let you know if any crashes come
back as I do more.
Thanks
Mark
_____________________________________________________________________________
Scanned for SoftLanding Systems, Inc. and SoftLanding Europe Plc by IBM Email Security Management Services powered by MessageLabs.
_____________________________________________________________________________
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Nov 3 22:58:11 2005