[ https://issues.apache.org/jira/browse/SOLR-17300?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sanjay Dutt resolved SOLR-17300. -------------------------------- Fix Version/s: 9.7 Resolution: Fixed > Copy existing listeners on re-creation of Http2SolrClient > --------------------------------------------------------- > > Key: SOLR-17300 > URL: https://issues.apache.org/jira/browse/SOLR-17300 > Project: Solr > Issue Type: Sub-task > Reporter: Sanjay Dutt > Assignee: Sanjay Dutt > Priority: Major > Fix For: 9.7 > > Time Spent: 1h 50m > Remaining Estimate: 0h > > For custom settings, such as timeouts, usually a Http2SolrClient is created > using the existing HTTP client using below code. > {code:java} > Http2SolrClient.Builder(leaderBaseUrl) > .withHttpClient(existingHttp2SolrClient) > .withIdleTimeout(soTimeout, TimeUnit.MILLISECONDS) > .withConnectionTimeout(connTimeout, TimeUnit.MILLISECONDS) > .build(); > {code} > If not specified, withHttpClient method would automatically copy over some of > the older configuration automatically to the new Http2SolrClient > {code:java} > if (this.basicAuthAuthorizationStr == null) { > this.basicAuthAuthorizationStr = > http2SolrClient.basicAuthAuthorizationStr; > } > if (this.followRedirects == null) { > this.followRedirects = http2SolrClient.httpClient.isFollowRedirects(); > } > if (this.idleTimeoutMillis == null) { > this.idleTimeoutMillis = http2SolrClient.idleTimeoutMillis; > } > if (this.requestWriter == null) { > this.requestWriter = http2SolrClient.requestWriter; > } > if (this.requestTimeoutMillis == null) { > this.requestTimeoutMillis = http2SolrClient.requestTimeoutMillis; > } > if (this.responseParser == null) { > this.responseParser = http2SolrClient.parser; > } > if (this.urlParamNames == null) { > this.urlParamNames = http2SolrClient.urlParamNames; > } > {code} > Nonetheless there is one field that did not pass over yet -- List of > HttpListenerFactory. This list also includes the interceptor for Auth due to > which re-created client were missing auth credentials and requests were > failing. > *Proposed Solution* :- > Along with other properties, List of Listener Factory should also be copied > over from old to new client using withHttpClient method. > {code:java} > if (this.listenerFactory == null) { > this.listenerFactory = new ArrayList<HttpListenerFactory>(); > http2SolrClient.listenerFactory.forEach(this.listenerFactory::add); > } > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org