protected static CommandRequest processQueryString(String line) {
        CommandRequest request = new CommandRequest();
        if (StringUtil.isBlank(line)) {
            return request;
        }
        int start = line.indexOf('/');
        int ask = line.indexOf('?') == -1 ? line.lastIndexOf(' ') : line.indexOf('?');
        int space = line.lastIndexOf(' ');
        String target = line.substring(start != -1 ? start + 1 : 0, ask != -1 ? ask : line.length());
        request.addMetadata(HttpCommandUtils.REQUEST_TARGET, target);
        if (ask == -1 || ask == space) {
            return request;
        }
        String parameterStr = line.substring(ask != -1 ? ask + 1 : 0, space != -1 ? space : line.length());
        parseParams(parameterStr, request);
        return request;
    }
@Test
    public void processQueryString() {
        CommandRequest request;
        
        request = HttpEventTask.processQueryString(null);
        assertNotNull(request);
        
        request = HttpEventTask.processQueryString(null);
        assertNotNull(request);
        
        request = HttpEventTask.processQueryString("get /?a=1&b=2&c=3#mark HTTP/1.0");
        assertNotNull(request);
        assertEquals("1", request.getParam("a"));
        assertEquals("2", request.getParam("b"));
        assertEquals("3", request.getParam("c"));
        
        request = HttpEventTask.processQueryString("post /test?a=3&b=4&c=3#mark HTTP/1.0");
        assertNotNull(request);
        assertEquals("3", request.getParam("a"));
        assertEquals("4", request.getParam("b"));
        assertEquals("3", request.getParam("c"));
    }