Fernando Rafael Ferreira created AMQ-3828:
---------------------------------------------

             Summary: URISupport incorrectly handles parenthesis
                 Key: AMQ-3828
                 URL: https://issues.apache.org/jira/browse/AMQ-3828
             Project: ActiveMQ
          Issue Type: Bug
          Components: Transport
    Affects Versions: 5.5.1, 6.0.0
            Reporter: Fernando Rafael Ferreira
            Priority: Minor


URISupport.parseComposite(URI) incorrectly parses an URI with a closing 
parenthesis ")" in the query part.

{code}
// The URI is parsed incorrectly when there is an unescaped ')'
URI uri = new URI("failover://()?updateURIsURL=file:/C:/Dir(1)/a.csv");
CompositeData data = URISupport.parseComposite(uri);

// Parsed Composite Data:
// - Components: [)?updateURIsURL=file:/C:/Dir(1]
// -   Fragment: null
// -       Host: 
// - Parameters: {}
// -       Path: a.csv
// -     Scheme: failover

// The URI is parsed correctly when it is an escaped
URI uri = new URI("failover://()?updateURIsURL=file:/C:/Dir%281%29/a.csv");
CompositeData data = URISupport.parseComposite(uri);
        
// Parsed Composite Data: 
// - Components: []
// -   Fragment: null
// -       Host: 
// - Parameters: {updateURIsURL=file:/C:/Dir(1)/a.csv}
// -       Path: null
// -     Scheme: failover
{code}

I think {{URISupport}} should either throw an URISyntaxException or parse it 
correctly.
See [RFC2396|http://www.ietf.org/rfc/rfc2396.txt]:
{quote}
Unreserved characters can be escaped without changing the semantics
of the URI, but this should not be done unless the URI is being used
in a context that does not allow the unescaped character to appear.
{quote}

By the way, the problem occurs in the method {{parseComposite(URI uri, 
CompositeData rc, String ssp)}}, at:

{code}
...
p = ssp.lastIndexOf(")");
...
{code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to