You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "stack (JIRA)" <ji...@apache.org> on 2009/07/17 21:32:14 UTC

[jira] Commented: (HBASE-1669) need dynamic extensibility of HBaseRPC code maps and interface lists

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

stack commented on HBASE-1669:
------------------------------

For sure this works?

I'd think that you'd want to add an accessor, getCode, so you passed into your new public addToMap, the current state. Otherwise, isn't there danger you'd overwrite other encodings?

You probably also want to pass back the code out of your new public addToMap in case you need to add more than one method/class?

Haven't tested.  Just by reading code.

If you make a new patch, say it works, I'll commit.

Thanks Clint.

> need dynamic extensibility of HBaseRPC code maps and interface lists
> --------------------------------------------------------------------
>
>                 Key: HBASE-1669
>                 URL: https://issues.apache.org/jira/browse/HBASE-1669
>             Project: Hadoop HBase
>          Issue Type: Bug
>            Reporter: Andrew Purtell
>             Fix For: 0.20.0
>
>         Attachments: 1588.patch
>
>
> From https://issues.apache.org/jira/browse/HBASE-1588?focusedCommentId=12732675&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12732675
> {quote}
> Now RPC does not work for the transactional interface. I see thinks like:
> [17/07/09 11:34:59] 26052 [or: SeedService] ERROR org.apache.hadoop.ipc.HbaseRPC - Unsupported type beginTransaction
> Caused by: java.lang.UnsupportedOperationException: No code for unexpected abort
> at org.apache.hadoop.hbase.ipc.HBaseRPC$Invocation.writeMethodNameCode(HBaseRPC.java:225)
> at org.apache.hadoop.hbase.ipc.HBaseRPC$Invocation.write(HBaseRPC.java:152)
> at org.apache.hadoop.hbase.ipc.HBaseClient$Connection.sendParam(HBaseClient.java:475)
> at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:708)
> at org.apache.hadoop.hbase.ipc.HBaseRPC$Invoker.invoke(HBaseRPC.java:321)
> at $Proxy18.abort(Unknown Source)
> at org.apache.hadoop.hbase.client.transactional.TransactionManager.abort(TransactionManager.java:214)
> at org.apache.hadoop.hbase.client.transactional.TransactionManager.abort(TransactionManager.java:198)
> Looking at HBaseRPC, it seems the interfaces are added in a static block inside of Invocation. Is there a way to add my interface from contrib?
> {quote}
> Maybe we can rig up something which uses annotations to mark RPC interfaces and associate an integer code with them, and then scan all classes on the classpath from a static initializer or constructor in HBaseRPC? 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.