[josm-dev] JOSM Ticket #263, cancelling an upload
Florian Heer
florianheerfheb at yahoo.de
Sat Aug 9 04:05:00 BST 2008
Hi!
I just verified Ticket #263 and tried to deliver a fix right with it. I
think I'm on the right track, but I'd like to get some confirmation
first...
Is it correct, that the boolean 'cancel' in OsmServerWriter never gets
set? Ie. do I see that correctly and is this intended?
What I think what happens is that the connection gets 'cancelled'
(timeouts set to 1, call disconnect()) but the OsmServerWriter just
receives a SocketTimeoutException without the cancelling-information.
So, bad timing assumed, what I think what happens is:
- josm sends a node
- server accepts and stores it
- user cancels
- josm closes connection without receiving an id for that node
=> that node still counts as not transmitted, although it was.
Suggestions:
1. In OsmServerWriter don't check for the local cancel but the
connection-cancel
2. When cancelling the connection, allow for some more cancelling-time
The problem itself can only be solved if the transfer protocol is a bit
more complex, meaning: Osm-Server should only put data in the DB which
are affirmed by the client:
1. josm sends new primitive
2. server sends new ID
3. josm replies the new ID to the server
4. server stores the primitive
That's still not waterproof of course.
Regards, Florian.
More information about the josm-dev
mailing list