You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Erlend Garåsen (JIRA)" <ji...@apache.org> on 2019/02/25 16:37:00 UTC

[jira] [Created] (SOLR-13270) SolrJ does not send "Expect: 100-continue" header

Erlend Garåsen created SOLR-13270:
-------------------------------------

             Summary: 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


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}
 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org