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. _______________________________________________ josm-dev mailing list [email protected] http://lists.openstreetmap.org/listinfo/josm-dev
