saintstack commented on a change in pull request #1301: HBASE-23833. The 
relocated hadoop-thirdparty protobuf breaks HBase asyncwal     
URL: https://github.com/apache/hbase/pull/1301#discussion_r394797856
 
 

 ##########
 File path: 
hbase-server/src/main/java/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.java
 ##########
 @@ -355,6 +353,55 @@ private void sendSaslMessage(ChannelHandlerContext ctx, 
byte[] payload) throws I
       return Collections.singletonList(new 
CipherOption(CipherSuite.AES_CTR_NOPADDING));
     }
 
+    private static class BuilderPayloadSetter {
+      private static Class<?> byteStringClass;
+      private static Class<?> builderClass;
+      private static Method copyFromMethod;
+      private static Method setPayloadMethod = null;
+
+      static void setter(DataTransferEncryptorMessageProto.Builder builder, 
byte[] payload) {
+        Object byteStringObject = null;
+        try {
+          byteStringObject = copyFromMethod.invoke(null, payload);
+        } catch (IllegalAccessException e) {
+          e.printStackTrace();
+        } catch (InvocationTargetException e) {
+          e.printStackTrace();
+        }
+
+        if (setPayloadMethod == null) {
+          try {
+            setPayloadMethod = builderClass.getMethod("setPayload", 
byteStringClass);
+          } catch (NoSuchMethodException e) {
+            e.printStackTrace();
+          }
+        }
+
+        try {
+          setPayloadMethod.invoke(builder, byteStringObject);
+        } catch (IllegalAccessException e) {
+          e.printStackTrace();
+        } catch (InvocationTargetException e) {
+          e.printStackTrace();
+        }
+      }
+
+      static {
+        builderClass = DataTransferEncryptorMessageProto.Builder.class;
+        byteStringClass = com.google.protobuf.ByteString.class;
 
 Review comment:
   Seems like it should be hbase internal shaded ByteString, not this 
com.google one.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to