Trying to compile RpcBus source file in Drill which expects both shaded
drill-protocol-0.7.0-rebuffed.jar and protobuf-java-2.5.0.jar, fails
with below error.
emprstw@66WQ7R1:~/DRILL/apache-drill-0.7.0/jars$ javac -cp
"/home/emprstw/DRILL/apache-drill-0.7.0/jars/3rdparty/*:/home/emprstw/DRILL/apache-drill-0.7.0/jars/*:/home/emprstw/DRILL/apache-drill-0.7.0/PROTOBUF/*"
RpcBus.java
RpcBus.java:88: error: method checkSend in class RpcConfig cannot be
applied to given types;
assert rpcConfig.checkSend(rpcType, protobufBody.getClass(), clazz);
^
required: 250.com.google.protobuf.Internal.EnumLite,Class<?>,Class<?>
found: T,Class<CAP#1>,Class<RECEIVE>
reason: actual argument T cannot be converted to
250.com.google.protobuf.Internal.EnumLite by method invocation conversion
where T,RECEIVE,SEND,C are type-variables:
T extends com.google.protobuf.Internal.EnumLite declared in class
RpcBus
RECEIVE extends MessageLite declared in method
<SEND,RECEIVE>send(RpcOutcomeListener<RECEIVE>,C,T,SEND,Class<RECEIVE>,boolean,ByteBuf...)
SEND extends MessageLite declared in method
<SEND,RECEIVE>send(RpcOutcomeListener<RECEIVE>,C,T,SEND,Class<RECEIVE>,boolean,ByteBuf...)
C extends RemoteConnection declared in class RpcBus
where CAP#1 is a fresh type-variable:
CAP#1 extends MessageLite from capture of ? extends MessageLite
RpcBus.java:92: error: no suitable constructor found for
OutboundRpcMessage(RpcMode,T,int,SEND,ByteBuf[])
OutboundRpcMessage m = new OutboundRpcMessage(RpcMode.REQUEST,
rpcType, futureListener.getCoordinationId(), protobufBody, dataBodies);
^
constructor
OutboundRpcMessage.OutboundRpcMessage(RpcMode,int,int,250.com.google.protobuf.MessageLite,ByteBuf...)
is not applicable
(actual argument T cannot be converted to int by method
invocation conversion)
constructor
OutboundRpcMessage.OutboundRpcMessage(RpcMode,250.com.google.protobuf.Internal.EnumLite,int,250.com.google.protobuf.MessageLite,ByteBuf...)
is not applicable
(actual argument T cannot be converted to
250.com.google.protobuf.Internal.EnumLite by method invocation conversion)
where T,SEND,RECEIVE,C are type-variables:
T extends com.google.protobuf.Internal.EnumLite declared in class
RpcBus
SEND extends com.google.protobuf.MessageLite declared in method
<SEND,RECEIVE>send(RpcOutcomeListener<RECEIVE>,C,T,SEND,Class<RECEIVE>,boolean,ByteBuf...)
RECEIVE extends com.google.protobuf.MessageLite declared in method
<SEND,RECEIVE>send(RpcOutcomeListener<RECEIVE>,C,T,SEND,Class<RECEIVE>,boolean,ByteBuf...)
C extends RemoteConnection declared in class RpcBus
2 errors
Can anyone help me to solve this.