I am using protobuf 2.6.1 with java 8 (Oracle downloaded jdk 1.8.0) on 
linux ubuntu. I cannot locate any JAVA_HOME call in protobuf folder using 
'grep'. How does protoc locate JAVA ? How can I check which version is used 
by who ?


Le jeudi 16 avril 2015 22:49:41 UTC+2, Feng Xiao a écrit :
>
> The error seems to suggest you are using a different version for protoc 
> and protobuf Java runtime. Could you check whether they are of the same 
> version?
>
> On Thu, Apr 16, 2015 at 3:29 AM, Tristan Soriano <[email protected] 
> <javascript:>> wrote:
>
>>
>> Hi, 
>> I am new to protobufers and I have some issues with the generated java 
>> code.
>> I am successfully generating a java class from the following .proto file :
>>
>>
>> ////////////////////////////////////////////////////////////////////////////////////////////////////////
>> option java_package = "org.myname.hbase.Coprocessor.autogenerated";
>> option java_outer_classname = "Sum";
>> option java_generic_services = true;
>> option java_generate_equals_and_hash = true;
>> option optimize_for = SPEED;
>> message SumRequest {
>>     required string family = 1;
>>     required string column = 2;
>> }
>>  
>> message SumResponse {
>>   required int64 sum = 1 [default = 0];
>> }
>>  
>> service SumService {
>>   rpc getSum(SumRequest)
>>     returns (SumResponse);
>> }
>>
>>
>> //////////////////////////////////////////////////////////////////////////////////////////////////////
>>
>> However the generated code has error in SumResquest and SumResponse 
>> generated class :
>> The auto generated method : HashCode( ) use an int "memoizedHashCode" as 
>> if it was an instance attribute but it is never declared.
>> In SumRequest :
>>
>>     @java.lang.Override
>>     public int hashCode() {
>>       if (memoizedHashCode != 0) {
>>         return memoizedHashCode;
>>       }
>>       int hash = 41;
>>       hash = (19 * hash) + getDescriptorForType().hashCode();
>>       if (hasFamily()) {
>>         hash = (37 * hash) + FAMILY_FIELD_NUMBER;
>>         hash = (53 * hash) + getFamily().hashCode();
>>       }
>>       if (hasColumn()) {
>>         hash = (37 * hash) + COLUMN_FIELD_NUMBER;
>>         hash = (53 * hash) + getColumn().hashCode();
>>       }
>>       hash = (29 * hash) + getUnknownFields().hashCode();
>>       memoizedHashCode = hash;
>>       return hash;
>>     }
>>
>>
>> //////////////////////////////////////////////////////////////////////////////////////////////////////
>> In SumResponse I have an extra error : The method hashLong(long) is 
>> undefined for the type Internal
>>
>>     @java.lang.Override
>>     public int hashCode() {
>>       if (memoizedHashCode != 0) {
>>         return memoizedHashCode;
>>       }
>>       int hash = 41;
>>       hash = (19 * hash) + getDescriptorForType().hashCode();
>>       if (hasSum()) {
>>         hash = (37 * hash) + SUM_FIELD_NUMBER;
>>         hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
>>             getSum());
>>       }
>>       hash = (29 * hash) + getUnknownFields().hashCode();
>>       memoizedHashCode = hash;
>>       return hash;
>>     }
>>
>>
>> As we are not supposed to edit the code. Do you have any idea what the 
>> solution could be ?
>> Should I add the missing attribute on my own, at what level and 
>> visibility ? How to solve my second issue ?
>> Is there any risk to add directly "getSum( ) ?
>>
>> Thx
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Protocol Buffers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> Visit this group at http://groups.google.com/group/protobuf.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to