Is there something wrong or it's just a note ypu make ? Thanks for clarifying.
On Wednesday, November 6, 2013, sebb wrote: > On 2 November 2013 21:53, <[email protected]> wrote: > > Author: pmouawad > > Date: Sat Nov 2 21:53:49 2013 > > New Revision: 1538291 > > > > URL: http://svn.apache.org/r1538291 > > Log: > > Bug 55717 - Bad handling of Redirect when URLs are in relative format by > HttpClient4 and HttpClient31 > > Bugzilla Id: 55717 > > > > Modified: > > > jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC3Impl.java > > > jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java > > > jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/util/ConversionUtils.java > > jmeter/trunk/xdocs/changes.xml > > > > Modified: > jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC3Impl.java > > URL: > http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC3Impl.java?rev=1538291&r1=1538290&r2=1538291&view=diff > > > ============================================================================== > > --- > jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC3Impl.java > (original) > > +++ > jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC3Impl.java > Sat Nov 2 21:53:49 2013 > > @@ -321,7 +321,12 @@ public class HTTPHC3Impl extends HTTPHCA > > throw new IllegalArgumentException("Missing > location header"); > > } > > try { > > - > res.setRedirectLocation(ConversionUtils.sanitizeUrl(new > URL(headerLocation.getValue())).toString()); > > + String redirectLocation = headerLocation.getValue(); > > + if(!(redirectLocation.startsWith("http:// > ")||redirectLocation.startsWith("https://"))) { > > + redirectLocation = > ConversionUtils.buildFullUrlFromRelative(url, redirectLocation); > > + } > > + > > + > res.setRedirectLocation(ConversionUtils.sanitizeUrl(new > URL(redirectLocation)).toString()); > > } catch (Exception e) { > > log.error("Error sanitizing > URL:"+headerLocation.getValue()+", message:"+e.getMessage()); > > } > > > > Modified: > jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java > > URL: > http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java?rev=1538291&r1=1538290&r2=1538291&view=diff > > > ============================================================================== > > --- > jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java > (original) > > +++ > jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java > Sat Nov 2 21:53:49 2013 > > @@ -332,7 +332,10 @@ public class HTTPHC4Impl extends HTTPHCA > > if (headerLocation == null) { // HTTP protocol > violation, but avoids NPE > > throw new IllegalArgumentException("Missing I > thought redirects did not allow relative references? > > > + // A relative reference that does not begin with a > > + // slash character is termed a relative-path reference > > + // We need to merge a relative-path reference with the path > of the base URI > > + // http://tools.ietf.org/html/rfc3986#section-5.2.3 > > + if(lastUrl.getPath().isEmpty()) { > > + // If the base URI has a defined authority component > and an empty > > + // path, then return a string consisting of "/" > concatenated with the > > + // reference's path; otherwise, > > + builder.append("/").append(redirectLocation); > > + } else { > > + // string consisting of the reference's path component > > + // appended to all but the last segment of the base > URI's path (i.e., > > + // excluding any characters after the right-most "/" in > the base URI > > + // path, or excluding the entire base URI path if it > does not contain > > + // any "/" characters). > > + String path = lastUrl.getPath(); > > + int index = path.lastIndexOf("/"); > > + if(index == -1) { > > + builder.append("/").append(redirectLocation); > > + } else { > > + builder.append(path.substring(0, index+1)) > > + .append(redirectLocation); > > + } > > + } > > + } > > + return builder.toString(); > > + } > > } > > > > Modified: jmeter/trunk/xdocs/changes.xml > > URL: > http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1538291&r1=1538290&r2=1538291&view=diff > > > ============================================================================== > > --- jmeter/trunk/xdocs/changes.xml (original) > > +++ jmeter/trunk/xdocs/changes.xml Sat Nov 2 21:53:49 2013 > > @@ -128,6 +128,7 @@ A workaround is to use a Java 7 update 4 > > > > <h3>HTTP Samplers and Proxy</h3> > > <ul> > > +<li><bugzilla>55717</bugzilla> - Bad handling of Redirect when URLs are > in relative format by HttpClient4 and HttpClient31</li> > > </ul> > > > > <h3>Other Samplers</h3> > > > > > -- Cordialement. Philippe Mouawad.
