[ https://issues.apache.org/jira/browse/HBASE-19047?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16219916#comment-16219916 ]
Anoop Sam John commented on HBASE-19047: ---------------------------------------- post hook I believe people were using to create wrapper over the passed RegionScanner object. Ya as u said it may be possible to chnage Scan object and do what u want. Extra /special filter. But what abt some other op.. Like make a wrapper and so the next ops happening via that. And do some extra accounting or so in the wrapper.. Some counters or so? I tend to continue this support of post hook return a wrapper. At least for this jira lets keep this.. If post also not allow wrap, me must do the discuss in dev@. Am sure many using the Region scanner wrapping. > 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 > > > 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)