hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lars Hofhansl (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-5097) Coprocessor RegionObserver implementation without preScannerOpen and postScannerOpen Impl is throwing NPE and so failing the system initialization.
Date Tue, 27 Dec 2011 20:04:30 GMT

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

Lars Hofhansl commented on HBASE-5097:
--------------------------------------

Not a big fan of catching NPEs. We can add a null check somewhere in the code, but catching
NPEs is bad design (IMHO).

@Ram: How did you actually do this? You need to implement RegionObserver, so you cannot compile
unless you provide an implementation of postScannerOpen. Or did you class not even implement
RegionObserver?

                
> Coprocessor RegionObserver implementation without preScannerOpen and postScannerOpen
Impl is throwing NPE and so failing the system initialization.
> ---------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-5097
>                 URL: https://issues.apache.org/jira/browse/HBASE-5097
>             Project: HBase
>          Issue Type: Bug
>          Components: coprocessors
>            Reporter: ramkrishna.s.vasudevan
>
> In HRegionServer.java openScanner()
> {code}
>       r.prepareScanner(scan);
>       RegionScanner s = null;
>       if (r.getCoprocessorHost() != null) {
>         s = r.getCoprocessorHost().preScannerOpen(scan);
>       }
>       if (s == null) {
>         s = r.getScanner(scan);
>       }
>       if (r.getCoprocessorHost() != null) {
>         s = r.getCoprocessorHost().postScannerOpen(scan, s);
>       }
> {code}
> If we dont have implemention for postScannerOpen the RegionScanner is null and so throwing
nullpointer 
> {code}
> java.lang.NullPointerException
> 	at java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:881)
> 	at org.apache.hadoop.hbase.regionserver.HRegionServer.addScanner(HRegionServer.java:2282)
> 	at org.apache.hadoop.hbase.regionserver.HRegionServer.openScanner(HRegionServer.java:2272)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:364)
> 	at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1326)
> {code}
> Making this defect as blocker.. Pls feel free to change the priority if am wrong.  Also
correct me if my way of trying out coprocessors without implementing postScannerOpen is wrong.
 Am just a learner.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message