-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bad handling of Redirect when URLs are in relative format by HttpClient4 and HttpClient31 #3260
Comments
@pmouawad (migrated from Bugzilla): We do not handle correctly absolute URL not starting with http://host:port/... See also : |
@pmouawad (migrated from Bugzilla): |
@pmouawad (migrated from Bugzilla): URL: http://svn.apache.org/r1538291 Modified: |
@pmouawad (migrated from Bugzilla): Created attachment BUG_55717.jsp: JSP to reproduce issue BUG_55717.jsp
|
@pmouawad (migrated from Bugzilla): BUG_55717.jmx<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="2.5" jmeter="2.10-SNAPSHOT.20131102">
<hashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true">
<stringProp name="TestPlan.comments"></stringProp>
<boolProp name="TestPlan.functional_mode">false</boolProp>
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="TestPlan.user_define_classpath"></stringProp>
</TestPlan>
<hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">1</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<longProp name="ThreadGroup.start_time">1383425002000</longProp>
<longProp name="ThreadGroup.end_time">1383425002000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
</ThreadGroup>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP HC4" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path"></stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Java" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path"></stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">Java</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP HC3" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path"></stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.implementation">HttpClient3.1</stringProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
</hashTree>
<ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">localhost</stringProp>
<stringProp name="HTTPSampler.port">8080</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/examples/jsp/redirect2.jsp</stringProp>
<stringProp name="HTTPSampler.concurrentPool">4</stringProp>
</ConfigTestElement>
<hashTree/>
<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
<boolProp name="ResultCollector.error_logging">false</boolProp>
<objProp>
<name>saveConfig</name>
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
<code>true</code>
<message>false</message>
<threadName>true</threadName>
<dataType>false</dataType>
<encoding>false</encoding>
<assertions>true</assertions>
<subresults>false</subresults>
<responseData>false</responseData>
<samplerData>false</samplerData>
<xml>false</xml>
<fieldNames>true</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
<hostname>true</hostname>
<threadCounts>true</threadCounts>
<sampleCount>true</sampleCount>
</value>
</objProp>
<stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
</hashTree>
</hashTree>
</jmeterTestPlan> |
@pmouawad (migrated from Bugzilla): http://jmeter.apache.org/nightly.html Installing JMeter runtime |
John (migrated from Bugzilla): Regards |
John (migrated from Bugzilla): Created attachment jmeter_20131106182440.log: jmeter log from nightly build jmeter_20131106182440.log
|
John (migrated from Bugzilla): Jmeter log containing the error in version 2.10 (MalformedURLException not nullpointer as initial comment). Created attachment jmeter_20131106180927.log: jmeter log with error - version 2.10 |
John (migrated from Bugzilla):
|
Nicholas Jasieniecki (migrated from Bugzilla): 2013/12/04 10:49:48 INFO - jmeter.JMeter: Copyright (c) 1998-2013 The Apache Software Foundation 2013/12/04 10:50:06 ERROR - jmeter.samplers.SampleResult: sampleEnd called twice java.lang.Throwable: Invalid call sequence 2013/12/04 10:50:08 INFO - jmeter.gui.action.Start: Stopping test |
@pmouawad (migrated from Bugzilla): |
Nicholas Jasieniecki (migrated from Bugzilla): |
@pmouawad (migrated from Bugzilla): |
@pmouawad (migrated from Bugzilla): URL: http://svn.apache.org/r1550547 Modified: |
John (Bug 55717):
Upgraded to the latest package however when running a test plan for the app, a NullPointerException is received in the UI and test fails.
The jmeter log has the following exception:
2013/10/23 17:20:30 INFO - jmeter.engine.StandardJMeterEngine: All thread groups have been started
2013/10/23 17:20:30 INFO - jmeter.threads.JMeterThread: Thread started: NTG Browse Group 1-1
2013/10/23 17:20:30 INFO - jmeter.services.FileServer: Stored: ../testdata/username_sit_ntg.csv Alias: ../testdata/username_sit_ntg.csv@1408643709
2013/10/23 17:20:31 ERROR - jmeter.protocol.http.sampler.HTTPHC4Impl: Error in redirect URL for GET https://XXXXX.XXXX.dev/obrar.cgi?encreply=Xn6LAHN93bO81vHLGrz6wH9hte82bJnPye388W2XAxzFQJRs%2F%2BTuhrOyJ6wESml5AfMsPQ9BNEF9c77RpQOkHuSVba6Hp%2FpjDAcWbAKPwFVPywMvWhD4nbsTcnGwUiX8HaGtgsOEXv5uocU7OLF9rlRMWtMTw4u0gcPTy%2FzrPCpXiAPGIEx%2BmFCGnscNdYnlxuGuVdCljjdv0YOZuIaaVx%2Bs4dREIipHjj9cWMK5hC9kIt99%2Fs5CmwDd5o5vvUxBeojZglT4CcQSyPM3Mp0faAcj51iVSYQDbhYCcAIYQmkDnm6sy%2BV9XnWmS%2B4YQi1rumAWFOYUZA47UJrerdbt71PeeQO%2BWOEyTTWvlLoSMFLY5C%2F255lL1BNLgOdx%2BVcTiJcgGGGS%2BVoWfAC2y5OfVrZIfFAwtUxZfnQQahNoLEwkLVOBbBT6TrPqv3itEQtIOFLxsR0VzIPxfTcW2jdEKS8YAQSMkHoUm%2Foy0j4hs0nuldroQCmB8WYBPUm8%2BSm7oeZQfohpuDrOjiyXIafVehSRepsF3KtCRyRm8acprudxYQyzkrjTwyfW4SsJqLSeKJ6x9DKS75Kb3NyZrfMHp414a6blBszDqMGgYR7sjP%2BjnAVE7Z3w9jOs2D0OW%2FAhBpguHKUTadvkfef%2BAVfhDw9C%2BWSp4tn42DwU%2BIFdZVw2X17Lv8DaOL96LveNO4RRdpf7jlZhqjWpB0FMPDAjG5NBbAi2a2cqau%2BSzZLh%2FKJexnplM5E7Ibll3Kwbm8SBYsLeASsBnWD4zINteVthjSQ1o2nxNKUFgicv2oHGUlg%3D HTTP/1.1
Could not sanitize URL: /portal/c/portal/login?loginredirect=true
java.net.MalformedURLException: no protocol: /portal/c/portal/login?loginredirect=true
at java.net.URL.<init>(URL.java:567)
at java.net.URL.<init>(URL.java:464)
at java.net.URL.<init>(URL.java:413)
at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:337)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.followRedirects(HTTPSamplerBase.java:1411)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.resultProcessing(HTTPSamplerBase.java:1482)
at org.apache.jmeter.protocol.http.sampler.HTTPAbstractImpl.resultProcessing(HTTPAbstractImpl.java:306)
at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:381)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1105)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1094)
at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:429)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:257)
at java.lang.Thread.run(Thread.java:662)
2013/10/23 17:20:31 ERROR - jmeter.samplers.SampleResult: sampleEnd called twice java.lang.Throwable: Invalid call sequence
at org.apache.jmeter.samplers.SampleResult.sampleEnd(SampleResult.java:1033)
at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:390)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1105)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1094)
at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:429)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:257)
at java.lang.Thread.run(Thread.java:662)
2013/10/23 17:20:31 INFO - jmeter.threads.JMeterThread: Thread finished: NTG Browse Group 1-1
2013/10/23 17:20:31 INFO - jmeter.engine.StandardJMeterEngine: Notifying test listeners of end of test
Severity: normal
OS: All
The text was updated successfully, but these errors were encountered: