Could you provide a patch or PR?
________________________________
Von: Benjamin Schulz (JIRA)
Gesendet: 17.02.2015 13:12
An: [email protected]
Betreff: [jira] [Created] (THRIFT-3001) C# Equals fails for binary fields 
(byte[])

Benjamin Schulz created THRIFT-3001:
---------------------------------------

             Summary: C# Equals fails for binary fields (byte[])
                 Key: THRIFT-3001
                 URL: https://issues.apache.org/jira/browse/THRIFT-3001
             Project: Thrift
          Issue Type: Bug
          Components: C# - Compiler
    Affects Versions: 0.9.2
         Environment: Windows, OSX (most probably all others as well)
            Reporter: Benjamin Schulz
            Priority: Minor


The genrated code for Equals is using System.Object.Equals() for byte[].

byte[] a = {1};
byte[] b = {1};
bool equals1 = System.Object.Equals(a, b);
bool equals2 = Thrift.Collections.TCollections.Equals(a, b);

equals1 ist False and equals2 is True.

The effects is, that two thrift-objects that have binary fields never compare 
Equal.

test/reproduction:
- create a thrift-model with a binary field.
- compile this thrift-model with the c# compiler with the hashcode option 
enabled.
- create two instances of this model (o1, o2) and fill the binary filed with 
equal data
- note the result of o1.Equals(o2)

fix: in t_csharp_generator.cc: change the check in the "Equals"-generator to 
also use TCollections.Equals for the binary type




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to