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

Andrew Purtell commented on HBASE-1669:
---------------------------------------

The patch should throw an exception if a code is already registered. Otherwise, 
+1.

> 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, 1669.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.

Reply via email to