hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ekohl...@gmail.com
Subject Re: Review Request: Coprocessor Protocol Generic Support
Date Sat, 01 Jan 2011 01:45:56 GMT

This is an automatically generated e-mail. To reply, visit:

(Updated 2010-12-31 17:45:56.197941)

Review request for hbase.


Added classes that were missing for tests.


Coprocessors currently do not support generic interfaces because type erasure makes their
generic parameters appear as Objects to Invocation.java.
This can be overcome by writing out the parameters using their own types (rather than the
type parameters), and then separately writing the class names for the type parameters. While
it would be ideal to implement this in Invocation.java, some other code seems to be relying
on its write order and doing so breaks other RPC code. The modification can, however, be implemented
in Exec.java instead.

The included patch modifies Invocation.java's fields to that they are protected scope, and
fully implements the read and write methods for Exec rather than using the parent method for
the parent fields. ExecResult is also modified to accommodate generic returns in the same

This addresses bug HBASE-3400.

Diffs (updated)

  src/main/java/org/apache/hadoop/hbase/client/coprocessor/Exec.java c127ea3 
  src/main/java/org/apache/hadoop/hbase/client/coprocessor/ExecResult.java be46cd2 
  src/main/java/org/apache/hadoop/hbase/ipc/Invocation.java 9609652 
  src/test/java/org/apache/hadoop/hbase/coprocessor/GenericEndpoint.java PRE-CREATION 
  src/test/java/org/apache/hadoop/hbase/coprocessor/GenericProtocol.java PRE-CREATION 
  src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorEndpoint.java 75f76e8 

Diff: http://review.cloudera.org/r/1405/diff


Integration test included in patch. Demonstrates generic interface using objects, arrays,
and primitives, and checks that all primitive classes work as well.



View raw message