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

guoquanshen commented on SENTRY-396:
------------------------------------

[~prasadm], thanks for your commend. I guess you may be misunderstand my 
meaning, It's my fault not to express what I thought correctly. The patch 
doesn't change the logic of registering
multiprocessors. I just adjust the order this process, that's meaningful. If 
there are two processors need to register, one for hive/impala processing 
request called processorA, the other for solr processing request called 
processorB. The original procedure is that:
registeredProcessor = registeredProcessor || factory.register(processor); if  
processorA is registered correctly, the processorB doesn't get a chance to 
register because of the short circuit of the expression

but the changing order is that:
registeredProcessor = factory.register(processor) || registeredProcessor; Every 
processor will get a chance to register even the previous processor failed 

> The Thrift multiplexedProcessor registers mutil processor failed
> ----------------------------------------------------------------
>
>                 Key: SENTRY-396
>                 URL: https://issues.apache.org/jira/browse/SENTRY-396
>             Project: Sentry
>          Issue Type: Bug
>    Affects Versions: 1.4.0
>            Reporter: guoquanshen
>            Assignee: guoquanshen
>             Fix For: 1.5.0
>
>         Attachments: SENTRY-396.patch
>
>
> The sentry service uses multiplexedProcessor to register multi processor, but 
> the logic isn't correct in my opinion. It use processFactory to register and 
> the source code as following:
> {code}TMultiplexedProcessor processor = new TMultiplexedProcessor();
> boolean registeredProcessor = false;
> for (String processorFactory : processorFactories){
>     ProcessorFactory factory = (ProcessorFactory) #create factory instance 
> with processorFactory name
>       registeredProcessor = registeredProcessor || 
> factory.register(processor);
> }{code}
> If the first factory register successfully, registeredProcessor will become 
> true then the following factories don't get the chance to register



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

Reply via email to