Ticket #1598: MakeAbortingMoreResponsive.2.patch

File MakeAbortingMoreResponsive.2.patch, 2.8 KB (added by xeen, 13 years ago)

Forgot updating the patch before uploading, this is the right one

  • src/org/openstreetmap/josm/io/OsmServerWriter.java

     
    226226                throw new OsmTransferException(tr("Server does not support changesets"));
    227227            }
    228228            if (retCode != 200 && retCode != 412) {
    229 
    230229                if (retries >= 0) {
    231230                    retries--;
    232                     System.out.print("backing off for 10 seconds...");
    233                     Thread.sleep(10000);
     231                    if(sleepAndListen()) return false;
    234232                    System.out.println("retrying ("+retries+" left)");
    235233                    return startChangeset(retries, comment);
    236234                }
     
    331329            } else if (retCode != 200 && retCode != 412) {
    332330                if (retries >= 0) {
    333331                    retries--;
    334                     System.out.print("backing off for 10 seconds...");
    335                     Thread.sleep(10000);
     332                    if(sleepAndListen()) return;
    336333                    System.out.println("retrying ("+retries+" left)");
    337334                    stopChangeset(retries);
    338335                } else {
     
    413410            if (retCode != 200 && retCode != 412) {
    414411                if (retries >= 0) {
    415412                    retries--;
    416                     System.out.print("backing off for 10 seconds...");
    417                     Thread.sleep(10000);
     413                    if(sleepAndListen()) return;
    418414                    System.out.println("retrying ("+retries+" left)");
    419415                    stopChangeset(retries);
    420416                } else {
     
    456452            throw new RuntimeException(e.getMessage()+ " " + e.getClass().getCanonicalName(), e);
    457453        }
    458454    }
     455   
     456    private boolean sleepAndListen() {
     457        System.out.print("backing off for 10 seconds...");
     458        for(int i=0; i < 10; i++) {
     459            if(cancel || isAuthCancelled()) {
     460                if(!cancel) cancel();
     461                return true;
     462            }
     463            try {
     464                Thread.sleep(1000);
     465            } catch (InterruptedException ex) {}
     466        }
     467        return false;
     468    }
    459469
    460470    /**
    461471     * Upload a single node.
     
    579589            else if (retCode != 200) {
    580590                if (retries >= 0 && retCode != 412)    {
    581591                    retries--;
    582                     System.out.print("backing off for 10 seconds...");
    583                     Thread.sleep(10000);
     592                    if(sleepAndListen()) return;
    584593                    System.out.println("retrying ("+retries+" left)");
    585594                    sendRequestRetry(requestMethod, urlSuffix, osm, body, retries);
    586595                } else {