Claus Ibsen created CAMEL-26026:
-----------------------------------

             Summary: camel-solr - the type of the body overrides the operation 
of the CamelSolrOperation header and the operation option
                 Key: CAMEL-26026
                 URL: https://issues.apache.org/jira/browse/CAMEL-26026
             Project: Camel
          Issue Type: Bug
          Components: camel-solr
    Affects Versions: 4.18.0, 4.22.0, 4.23.0
            Reporter: Claus Ibsen
             Fix For: 4.24.0, 4.22.3, 4.18.6


The solr producer picks the operation from the type of the body before it looks 
at the {{CamelSolrOperation}} header and the {{operation}} option 
({{SolrProducer.resolveSolrOperation}}, main 07d2e7a987bc, lines 177-238): a 
Map, a File or a Collection that is not all Strings runs an INSERT, and a 
Collection of Strings runs a DELETE by id. So the operation of a route depends 
on the shape of its data: a route with {{operation=INSERT}} deletes documents 
when the body is a List of Strings, and one with {{operation=SEARCH}} inserts a 
Map body. The {{CamelSolrQueryString}} header makes any operation a SEARCH, and 
a {{CamelSolrOperation}} value that is not an operation does not fail.

Checked on 4.24.0-SNAPSHOT with {{camel run}} against {{camel infra run solr}}:
* {{operation=INSERT}} with the body {{["maps-1"]}} deleted the document maps-1;
* {{operation=SEARCH}} with a Map body inserted the Map as a document;
* {{operation=PING}} with a List of Strings deleted the documents with those 
ids;
* {{CamelSolrOperation=NOSUCH}} on an endpoint with {{operation=INSERT}} ran a 
search.

*Proposed change*: the {{CamelSolrOperation}} header, or else the {{operation}} 
option, decides the operation, and the body only when neither is set. A body 
that is a SolrJ request, such as a SolrQuery or an UpdateRequest, still picks 
its own operation, as the route builds it. A header value that is not an 
operation fails.

_Claude Code on behalf of davsclaus_



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to