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

List:       rampart-dev
Subject:    [jira] [Resolved] (AXIS2-5078) Axis takes 100% CPU, infinite loop
From:       "Andreas Veithen (JIRA)" <jira () apache ! org>
Date:       2011-06-25 12:08:47
Message-ID: 699771863.40324.1309003727397.JavaMail.tomcat () hel ! zones ! apache ! org
[Download RAW message or body]


     [ https://issues.apache.org/jira/browse/AXIS2-5078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel \
]

Andreas Veithen resolved AXIS2-5078.
------------------------------------

       Resolution: Fixed
    Fix Version/s: 1.7.0
                   1.6.1
                   1.5.6

Fixed.

Thanks for providing the information necessary to reproduce this issue!

> 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
> Assignee: Andreas Veithen
> Fix For: 1.5.6, 1.6.1, 1.7.0
> 
> 
> 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