[ https://issues.apache.org/jira/browse/SOLR-13270?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Erlend Garåsen updated SOLR-13270: ---------------------------------- Description: SolrJ does not set the "Expect: 100-continue" header, even though it's configured in HttpClient: {code:java} builder.setDefaultRequestConfig(RequestConfig.custom().setExpectContinueEnabled(true).build());{code} A HttpClient developer has reviewed the code and says we're setting up the client correctly, so we have a reason to believe there is a bug in SolrJ. It's actually a problem we are facing in ManifoldCF, explained in: https://issues.apache.org/jira/browse/CONNECTORS-1564 The problem can be reproduced by building and running the following small Maven project: [http://folk.uio.no/erlendfg/solr/missing-header.zip] The application runs SolrJ code where the header does not show up and HttpClient code where the header is present. {code:java} HttpClientBuilder builder = HttpClients.custom(); // This should add an Expect: 100-continue header: builder.setDefaultRequestConfig(RequestConfig.custom().setExpectContinueEnabled(true).build()); HttpClient httpClient = builder.build(); // Start Solr and create a core named "test". String baseUrl = "http://localhost:8983/solr/test"; // Test using SolrJ — no expect 100 header HttpSolrClient client = new HttpSolrClient.Builder() .withHttpClient(httpClient) .withBaseSolrUrl(baseUrl).build(); SolrQuery query = new SolrQuery(); query.setQuery("*:*"); client.query(query); // Test using HttpClient directly — expect 100 header shows up: HttpPost httpPost = new HttpPost(baseUrl); HttpEntity entity = new InputStreamEntity(new ByteArrayInputStream("test".getBytes())); httpPost.setEntity(entity); httpClient.execute(httpPost); {code} When using the last HttpClient test, the expect 100 header appears in missing-header.log: {noformat} http-outgoing-1 >> Expect: 100-continue{noformat} was: SolrJ does not set the "Expect: 100-continue" header, even though it's configured in HttpClient: {code:java} builder.setDefaultRequestConfig(RequestConfig.custom().setExpectContinueEnabled(true).build());{code} A HttpClient developer has reviewed the code and says we're setting up the client correctly, so we have a reason to believe there is a bug in SolrJ. It's actually a problem we are facing in ManifoldCF, explained in: https://issues.apache.org/jira/browse/CONNECTORS-1564 The problem can be reproduced by building and running the following small Maven project: [http://folk.uio.no/erlendfg/solr/missing-header.zip] The application runs SolrJ code where the header does not show up and HttpClient code where the header is present. {code:java} HttpClientBuilder builder = HttpClients.custom(); // This should add an Expect: 100-continue header: builder.setDefaultRequestConfig(RequestConfig.custom().setExpectContinueEnabled(true).build()); HttpClient httpClient = builder.build(); // Start Solr and create a core named "test". String baseUrl = "http://localhost:8983/solr/test"; // Test using SolrJ — no expect 100 header HttpSolrClient client = new HttpSolrClient.Builder() .withHttpClient(httpClient) .withBaseSolrUrl(baseUrl).build(); SolrQuery query = new SolrQuery(); query.setQuery("*:*"); client.query(query); // Test using HttpClient directly — expect 100 header shows up: HttpPost httpPost = new HttpPost(baseUrl); HttpEntity entity = new InputStreamEntity(new ByteArrayInputStream("test".getBytes())); httpPost.setEntity(entity); httpClient.execute(httpPost); {code} > SolrJ does not send "Expect: 100-continue" header > ------------------------------------------------- > > Key: SOLR-13270 > URL: https://issues.apache.org/jira/browse/SOLR-13270 > Project: Solr > Issue Type: Bug > Security Level: Public(Default Security Level. Issues are Public) > Components: SolrJ > Affects Versions: 7.7 > Reporter: Erlend Garåsen > Priority: Major > > SolrJ does not set the "Expect: 100-continue" header, even though it's > configured in HttpClient: > {code:java} > builder.setDefaultRequestConfig(RequestConfig.custom().setExpectContinueEnabled(true).build());{code} > A HttpClient developer has reviewed the code and says we're setting up > the client correctly, so we have a reason to believe there is a bug in > SolrJ. It's actually a problem we are facing in ManifoldCF, explained in: > https://issues.apache.org/jira/browse/CONNECTORS-1564 > The problem can be reproduced by building and running the following small > Maven project: > [http://folk.uio.no/erlendfg/solr/missing-header.zip] > The application runs SolrJ code where the header does not show up and > HttpClient code where the header is present. > > {code:java} > HttpClientBuilder builder = HttpClients.custom(); > // This should add an Expect: 100-continue header: > builder.setDefaultRequestConfig(RequestConfig.custom().setExpectContinueEnabled(true).build()); > HttpClient httpClient = builder.build(); > // Start Solr and create a core named "test". > String baseUrl = "http://localhost:8983/solr/test"; > // Test using SolrJ — no expect 100 header > HttpSolrClient client = new HttpSolrClient.Builder() > .withHttpClient(httpClient) > .withBaseSolrUrl(baseUrl).build(); > SolrQuery query = new SolrQuery(); > query.setQuery("*:*"); > client.query(query); > // Test using HttpClient directly — expect 100 header shows up: > HttpPost httpPost = new HttpPost(baseUrl); > HttpEntity entity = new InputStreamEntity(new > ByteArrayInputStream("test".getBytes())); > httpPost.setEntity(entity); > httpClient.execute(httpPost); > {code} > When using the last HttpClient test, the expect 100 header appears in > missing-header.log: > {noformat} > http-outgoing-1 >> Expect: 100-continue{noformat} -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org