[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