[ https://issues.apache.org/jira/browse/HBASE-19047?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16220735#comment-16220735 ]
stack commented on HBASE-19047: ------------------------------- You see above [~anoop.hbase]? > CP exposed Scanner types should not extend Shipper > -------------------------------------------------- > > Key: HBASE-19047 > URL: https://issues.apache.org/jira/browse/HBASE-19047 > Project: HBase > Issue Type: Sub-task > Components: Coprocessors > Reporter: Anoop Sam John > Assignee: Anoop Sam John > Fix For: 2.0.0-alpha-4 > > Attachments: HBASE-19047.patch, HBASE-19047_V2.patch, > HBASE-19047_V2.patch, HBASE-19047_V3.patch > > > Shipper is a IA.Private interface and very much internal.. > Right now CP exposed RegionScanner is extending this and so exposing the > shipped() method. This by mistake is called, can harm the correctness of the > cells in the Results. > preScannerOpen() allowing to return a new Scanner is also problematic now. > This can allow users to create a Region scanner from Region and then wrap it > and return back (Well same can be done by postScannerOpen also), it can so > happen that the wrapper is not implementing the shipped() properly. In any > way exposing the shipped () is problematic. > Solution Steps > 1. Remove preScannerOpen() , the use case I can think of is wrapping the > original scanner. The original scanner can be created by Region.getScanner > way only.. May be no need to remove this hook. Just remove the ability for > it to return a RegionScanner instance. Call this with the Scan object and > the CP can change the Scan object if they want. > 2. Let RegionScanner not extending Shipper but only RegionScannerImpl > implements this > 3. We have ref to the RegionScanner created by core and let that be used by > RegionScannerShippedCallBack when the post hook doing a wrap. -- This message was sent by Atlassian JIRA (v6.4.14#64029)