[ 
https://issues.apache.org/jira/browse/SOLR-6787?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14354368#comment-14354368
 ] 

Noble Paul commented on SOLR-6787:
----------------------------------

bq.The default implementation is also buggy... it creates a request object that 
is never closed.

It is done in a try finally block. So, it will be closed

{noformat}
 try(LocalSolrQueryRequest r = new LocalSolrQueryRequest(getCore(), params)) {
      getCore().getRequestHandler(handler).handleRequest(r, rsp);
    }
{noformat}

bq.It's also not clear what "DO a return after this call if no other operations 
need to be performed" means.

It means the caller can just return if the forwarded request will do all the 
work

bq.I wouldn't want to encourage people to use this... perhaps this refactor 
should just be reverted or moved to BlobManager (as it's currently the only 
user).

The problem I see with our internal APIs is that they are mostly expert only 
and easy to screw up.It is easy to forget to close the request here. That is 
why I created a "non-expert" method which anyone can use.




> API to manage blobs in  Solr
> ----------------------------
>
>                 Key: SOLR-6787
>                 URL: https://issues.apache.org/jira/browse/SOLR-6787
>             Project: Solr
>          Issue Type: Sub-task
>            Reporter: Noble Paul
>            Assignee: Noble Paul
>             Fix For: 5.0, Trunk
>
>         Attachments: SOLR-6787.patch, SOLR-6787.patch
>
>
> A special collection called .system needs to be created by the user to 
> store/manage blobs. The schema/solrconfig of that collection need to be 
> automatically supplied by the system so that there are no errors
> APIs need to be created to manage the content of that collection
> {code}
> #create your .system collection first
> http://localhost:8983/solr/admin/collections?action=CREATE&name=.system&replicationFactor=2
> #The config for this collection is automatically created . numShards for this 
> collection is hardcoded to 1
> #create a new jar or add a new version of a jar
> curl -X POST -H 'Content-Type: application/octet-stream' --data-binary 
> @mycomponent.jar http://localhost:8983/solr/.system/blob/mycomponent
> #  GET on the end point would give a list of jars and other details
> curl http://localhost:8983/solr/.system/blob 
> # GET on the end point with jar name would give  details of various versions 
> of the available jars
> curl http://localhost:8983/solr/.system/blob/mycomponent
> # GET on the end point with jar name and version with a wt=filestream to get 
> the actual file
> curl http://localhost:8983/solr/.system/blob/mycomponent/1?wt=filestream > 
> mycomponent.1.jar
> # GET on the end point with jar name and wt=filestream to get the latest 
> version of the file
> curl http://localhost:8983/solr/.system/blob/mycomponent?wt=filestream > 
> mycomponent.jar
> {code}
> Please note that the jars are never deleted. a new version is added to the 
> system everytime a new jar is posted for the name. You must use the standard 
> delete commands to delete the old entries



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to