Mark Adamcin created SLING-12363:
------------------------------------
Summary: ServerErrorRetryStrategy throws ClassCastException for
BasicHttpRequest (not assignable to HttpRequestWrapper)
Key: SLING-12363
URL: https://issues.apache.org/jira/browse/SLING-12363
Project: Sling
Issue Type: Bug
Components: Apache Sling Testing Clients
Affects Versions: Apache Sling Testing Clients 3.0.24, Apache Sling Testing
Clients 3.0.22, Apache Sling Testing Clients 3.0.20
Reporter: Mark Adamcin
Relates to SLING-11748 .
[https://github.com/apache/sling-org-apache-sling-testing-clients/pull/42]
During a network outage, some executions of integration tests using SlingClient
started failing with the following stack trace:
{code:java}
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 327.4 s
<<< FAILURE! -- in com.adobe.cq.cloud.testing.it.smoke.PublishEndToEndIT
[ERROR]
com.adobe.cq.cloud.testing.it.smoke.PublishEndToEndIT.testActivateAndDeactivate
-- Time elapsed: 327.2 s <<< ERROR!
java.lang.ClassCastException: Cannot cast
org.apache.http.message.BasicHttpRequest to
org.apache.http.client.methods.HttpRequestWrapper
at java.base/java.lang.Class.cast(Class.java:3889)
at
org.apache.http.protocol.HttpCoreContext.getAttribute(HttpCoreContext.java:119)
at
org.apache.sling.testing.clients.util.ServerErrorRetryStrategy.getRequestDetails(ServerErrorRetryStrategy.java:96)
at
org.apache.sling.testing.clients.util.ServerErrorRetryStrategy.retryRequest(ServerErrorRetryStrategy.java:58)
at
org.apache.http.impl.execchain.ServiceUnavailableRetryExec.execute(ServiceUnavailableRetryExec.java:88)
at
org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
at
org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)
at
org.apache.sling.testing.clients.interceptors.FormBasedAuthInterceptor.doLogin(FormBasedAuthInterceptor.java:141)
at
org.apache.sling.testing.clients.interceptors.FormBasedAuthInterceptor.process(FormBasedAuthInterceptor.java:80)
at
org.apache.http.protocol.ImmutableHttpProcessor.process(ImmutableHttpProcessor.java:133)
at
org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
at
org.apache.http.impl.execchain.ServiceUnavailableRetryExec.execute(ServiceUnavailableRetryExec.java:85)
at
org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at
org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
at
org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at
org.apache.sling.testing.clients.AbstractSlingClient.execute(AbstractSlingClient.java:698)
at
org.apache.sling.testing.clients.AbstractSlingClient.doStreamRequest(AbstractSlingClient.java:326)
at
org.apache.sling.testing.clients.AbstractSlingClient.doStreamGet(AbstractSlingClient.java:440)
at
org.apache.sling.testing.clients.AbstractSlingClient.doGet(AbstractSlingClient.java:503)
at
org.apache.sling.testing.clients.AbstractSlingClient.doGet(AbstractSlingClient.java:539)
at
org.apache.sling.testing.clients.SlingClient.exists(SlingClient.java:202)
at com.adobe.cq.testing.junit.rules.Page.prepare(Page.java:151)
at com.adobe.cq.testing.junit.rules.Page.before(Page.java:82) {code}
The type expected by
[getRequestDetails()|https://github.com/apache/sling-org-apache-sling-testing-clients/blob/da878173581fd2a8f667b365de0fd05318b12443/src/main/java/org/apache/sling/testing/clients/util/ServerErrorRetryStrategy.java#L100]
should probably be changed from HttpRequestWrapper to
{{{}org.apache.http.HttpRequest{}}}, which is a common interface for both
BasicHttpRequest and HttpRequestWrapper, and which happens to define the
getRequestLine() method .
--
This message was sent by Atlassian Jira
(v8.20.10#820010)