Changeset 5008 in josm


Ignore:
Timestamp:
Feb 20, 2012 10:08:03 PM (16 months ago)
Author:
bastiK
Message:

remotecontrol: tolerate '?' in query part of url (see #7434)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/RequestHandler.java

    r4883 r5008  
    2121 */ 
    2222public abstract class RequestHandler { 
    23      
     23 
    2424    public static final String globalConfirmationKey = "remotecontrol.always-confirm"; 
    2525    public static final boolean globalConfirmationDefault = false; 
     
    155155     */ 
    156156    protected void parseArgs() { 
    157         StringTokenizer st = new StringTokenizer(this.request, "&?"); 
    158157        HashMap<String, String> args = new HashMap<String, String>(); 
    159         // ignore first token which is the command 
    160         if(st.hasMoreTokens()) st.nextToken(); 
    161         while (st.hasMoreTokens()) { 
    162             String param = st.nextToken(); 
    163             int eq = param.indexOf("="); 
    164             if (eq > -1) 
    165                 args.put(param.substring(0, eq), 
    166                          param.substring(eq + 1)); 
     158        if (this.request.indexOf('?') != -1) { 
     159            String query = this.request.substring(this.request.indexOf('?') + 1); 
     160            if (query.indexOf('#') != -1) { 
     161                query = query.substring(0, query.indexOf('#')); 
     162            } 
     163            String[] params = query.split("&", -1); 
     164            for (String param : params) { 
     165                int eq = param.indexOf('='); 
     166                if (eq != -1) { 
     167                    args.put(param.substring(0, eq), param.substring(eq + 1)); 
     168                } 
     169            } 
    167170        } 
    168171        this.args = args; 
     
    237240        } 
    238241    } 
    239      
     242 
    240243    public static class RequestHandlerForbiddenException extends RequestHandlerException { 
    241244        private static final long serialVersionUID = 2263904699747115423L; 
Note: See TracChangeset for help on using the changeset viewer.