[prev in list] [next in list] [prev in thread] [next in thread] 

List:       axis-dev
Subject:    [jira] [Created] (AXIS2-5078) Axis takes 100% CPU, infinite loop in
From:       "Jonathan Ducharme (JIRA)" <jira () apache ! org>
Date:       2011-06-23 18:29:47
Message-ID: 1828078863.34145.1308853787404.JavaMail.tomcat () hel ! zones ! apache ! org
[Download RAW message or body]

Axis takes 100% CPU, infinite loop in the QueryStringParser
-----------------------------------------------------------

                 Key: AXIS2-5078
                 URL: https://issues.apache.org/jira/browse/AXIS2-5078
             Project: Axis2
          Issue Type: Bug
          Components: kernel
    Affects Versions: 1.5.5
         Environment: Mac, Linux
            Reporter: Jonathan Ducharme


Hi, 

My problem is basically https://issues.apache.org/jira/browse/AXIS2-4736, but since \
it was closed without the step to reproduce, I've open a new issue, and will give you \
the code I made to test it.

Yes it's a malformed URL, but I think it's still an issue.

    public static void main( String[] args ) {
        QueryStringParser parser = new QueryStringParser("&gsdfgfds");
        parser.search( new ArrayList<String>() );
        System.out.println("done");
    }

That being said, what I did is change the next() method by adding a check on the idx:

    public boolean next() {
        int len = queryString.length();
        if (paramEnd == len) {
            return false;
        }
        paramBegin = paramEnd == 0 ? 0 : paramEnd+1;
        int idx = queryString.indexOf('&', paramBegin);
        
        if(idx == 0) {
        	return false;
        }
        
        paramEnd = idx == -1 ? len : idx;
        idx = queryString.indexOf('=', paramBegin);
        paramNameEnd = idx == -1 || idx > paramEnd ? paramEnd : idx;
        paramName = null;
        paramValue = null;
        return true;
    }

For our current needs it work, might not be the best solution, but for what we had to \
do it worked pretty well. This also pass the QueryStringParserTest that axis has.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic