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 <mtr.s...@gmail.com 
> <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 protobuf+u...@googlegroups.com <javascript:>.
>> To post to this group, send email to prot...@googlegroups.com 
>> <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 protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at http://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to