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

Sean Busbey commented on HBASE-26817:
-------------------------------------

I understand the rationale for not allowing parent classes with less permissive 
audiences than children and can get behind it.

I don't think it'll serve our interests to apply the other direction as a 
blanket approach. For example, we use public abstract classes as a way to 
provide help to downstream implementers of public interfaces where we want the 
option of someone providing an alternate implementation but we want our default 
implementation to be private. I usually want to keep the scope of LP(PHOENIX) 
promises as small as possible.

In the specific case of these other implementations for RpcExecutor I don't 
have a strong opinion. If I was going to personally dig in, I'd be interested 
in finding out _why_ they were marked differently. If it's just a matter of 
them trying to match RpcExecutor because they didn't exist when Phoenix asked 
for the other subclasses to be LimitedPrivate, then it seems reasonable to make 
them LimitedPrivate.

> Mark RpcExecutor as IA.LimitedPrivate COPROC and PHOENIX
> --------------------------------------------------------
>
>                 Key: HBASE-26817
>                 URL: https://issues.apache.org/jira/browse/HBASE-26817
>             Project: HBase
>          Issue Type: Task
>          Components: compatibility
>    Affects Versions: 2.5.0, 3.0.0-alpha-2, 2.6.0, 2.4.10
>            Reporter: Nick Dimiduk
>            Assignee: Nick Dimiduk
>            Priority: Major
>
> {{RpcExecutor}}, an abstract base class, is marked as {{IA.Private}}. 
> However, it has several subclasses that are marked as 
> {{IA.LimitedPrivate(COPROC, PHOENIX)}}. I think that the base class needs to 
> match the highest exposure level of any of its subclasses.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to