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)

Reply via email to