Saul Farber wrote:
Hey all,
I've identified a nasty concurrency issue in the arcsde DataStore. I'm
attaching a patch, but it's basically a one-liner.
A brief explanation:
Every SDE "stream" object (query, update, etc.) is based on an SDE
connection, and if more than one "stream" object (SeStreamOp derived
class) is constructed with the same underlying connection object, and
then they're both pushed to do anything with the underlying connection
(for an SeQuery, that'd be "execute()", for an SeUpdate that'd be
"update()", etc.) bad things will happen. Generally the underlying
connection object just locks up, causing the map being rendered to
simply hang.
I think there's a logical error in the ArcSDEQuery class, in the
getSeQuery() method. The finally block at the end releases the
connection that was just used to create the SeQuery object, and then
returns the SeQuery object to the calling method. Presumably the
calling method then uses the SeQuery.execute() method, and the
underlying connection will likely then be re-handed out and
re-used...causing a deadlock.
I've commented out the releaseConnection() call.
What should I do to file this as an official bug and patch?
Well we should contact the module maintainer for the arcsde module
- that is in the project.xml file. Looking it up now - seems to be Andrea!
And make a jira bug report (with your one liner mentioned).
If they don't respond in three days, a random PMC ccan make the change
for you,
but lets ask Andrea first.
BTW the section of the guide that covers this stuff is here:
-<http://docs.codehaus.org/display/GEOTOOLS/Hacking>
Jody
-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel