You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by fs...@apache.org on 2017/07/23 15:48:41 UTC

svn commit: r1802732 - in /jmeter/trunk: src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java

Author: fschumacher
Date: Sun Jul 23 15:48:41 2017
New Revision: 1802732

URL: http://svn.apache.org/viewvc?rev=1802732&view=rev
Log:
Change equals and hashCode so that they are more independent from JMeterVariables.

Modified:
    jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java
    jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java

Modified: jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java?rev=1802732&r1=1802731&r2=1802732&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java Sun Jul 23 15:48:41 2017
@@ -40,8 +40,13 @@ class UnmodifiableJMeterVariables extend
 
     @Override
     public int hashCode() {
-        return variables.hashCode();
+        final int prime = 31;
+        int result = 1;
+        result = prime * result
+                + ((variables == null) ? 0 : variables.hashCode());
+        return result;
     }
+    
 
     @Override
     public String getThreadName() {
@@ -88,8 +93,21 @@ class UnmodifiableJMeterVariables extend
         return variables.get(key);
     }
 
+    @Override
     public boolean equals(Object obj) {
-        return variables.equals(obj);
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        UnmodifiableJMeterVariables other = (UnmodifiableJMeterVariables) obj;
+        if (variables == null) {
+            if (other.variables != null)
+                return false;
+        } else if (!variables.equals(other.variables))
+            return false;
+        return true;
     }
  
     @Override

Modified: jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java?rev=1802732&r1=1802731&r2=1802732&view=diff
==============================================================================
--- jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java (original)
+++ jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java Sun Jul 23 15:48:41 2017
@@ -124,13 +124,26 @@ public class TestUnmodifiableJMeterVaria
     }
 
     @Test
-    public void testEqualsObject() {
-        assertThat(unmodifiables, CoreMatchers.is(vars));
+    public void testEqualsObjectSymmetry() {
+        UnmodifiableJMeterVariables otherUnmodifiables = new UnmodifiableJMeterVariables(vars);
+        assertThat(unmodifiables, CoreMatchers.is(otherUnmodifiables));
+        assertThat(otherUnmodifiables, CoreMatchers.is(unmodifiables));
+    }
+
+    @Test
+    public void testEqualsObjectReflexivity() {
+        assertThat(unmodifiables, CoreMatchers.is(unmodifiables));
+    }
+
+    @Test
+    public void testEqualsObjectWithJMeterVariables() {
+        assertThat(unmodifiables.equals(vars), CoreMatchers.is(vars.equals(unmodifiables)));
     }
 
     @Test
     public void testHashCode() {
-        assertThat(unmodifiables.hashCode(), CoreMatchers.is(vars.hashCode()));
+        UnmodifiableJMeterVariables otherUnmodifiables = new UnmodifiableJMeterVariables(vars);
+        assertThat(unmodifiables.hashCode(), CoreMatchers.is(otherUnmodifiables.hashCode()));
     }
 
 }



Re: svn commit: r1802732 - in /jmeter/trunk: src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java

Posted by Felix Schumacher <fe...@internetallee.de>.

Am 31. Juli 2017 12:07:34 MESZ schrieb sebb <se...@gmail.com>:
>On 31 July 2017 at 10:56, Felix Schumacher
><fe...@internetallee.de> wrote:
>>
>>
>> Am 30. Juli 2017 22:14:08 MESZ schrieb sebb <se...@gmail.com>:
>>>On 23 July 2017 at 16:48,  <fs...@apache.org> wrote:
>>>> Author: fschumacher
>>>> Date: Sun Jul 23 15:48:41 2017
>>>> New Revision: 1802732
>>>>
>>>> URL: http://svn.apache.org/viewvc?rev=1802732&view=rev
>>>> Log:
>>>> Change equals and hashCode so that they are more independent from
>>>JMeterVariables.
>>>>
>>>> Modified:
>>>>
>>>jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java
>>>>
>>>jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java
>>>>
>>>> Modified:
>>>jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java
>>>> URL:
>>>http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java?rev=1802732&r1=1802731&r2=1802732&view=diff
>>>>
>>>==============================================================================
>>>> ---
>>>jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java
>>>(original)
>>>> +++
>>>jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java
>>>Sun Jul 23 15:48:41 2017
>>>> @@ -40,8 +40,13 @@ class UnmodifiableJMeterVariables extend
>>>>
>>>>      @Override
>>>>      public int hashCode() {
>>>> -        return variables.hashCode();
>>>> +        final int prime = 31;
>>>> +        int result = 1;
>>>> +        result = prime * result
>>>
>>>This is always 31.
>>>
>>>> +                + ((variables == null) ? 0 :
>variables.hashCode());
>>>> +        return result;
>>>
>>>Not sure what the point of adding 31 is.
>>
>> It is the default implementation that eclipse generates. I was a bit
>lazy here. I kept the 31 as that way the hash code would be different
>to that of JMeterVariables.
>
>But why does it need to be different?

It doesn't need to be. If you want, I can revert it. 

>
>> Felix
>>
>>>
>>>Why not just use:
>>>
>>>return variables == null) ? 0 : variables.hashCode()
>>>
>>>>      }
>>>> +
>>>>
>>>>      @Override
>>>>      public String getThreadName() {
>>>> @@ -88,8 +93,21 @@ class UnmodifiableJMeterVariables extend
>>>>          return variables.get(key);
>>>>      }
>>>>
>>>> +    @Override
>>>>      public boolean equals(Object obj) {
>>>> -        return variables.equals(obj);
>>>> +        if (this == obj)
>>>> +            return true;
>>>> +        if (obj == null)
>>>> +            return false;
>>>> +        if (getClass() != obj.getClass())
>>>> +            return false;
>>>
>>>Since null is not and instanceof anything, the last two checks can be
>>>simplified to:
>>>
>>>    if (!obj instanceof UnmodifiableJMeterVariables) {
>>>        return false;
>>>    }
>>>
>>>> +        UnmodifiableJMeterVariables other =
>>>(UnmodifiableJMeterVariables) obj;
>>>> +        if (variables == null) {
>>>> +            if (other.variables != null)
>>>> +                return false;
>>>> +        } else if (!variables.equals(other.variables))
>>>> +            return false;
>>>> +        return true;
>>>>      }
>>>>
>>>>      @Override
>>>>
>>>> Modified:
>>>jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java
>>>> URL:
>>>http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java?rev=1802732&r1=1802731&r2=1802732&view=diff
>>>>
>>>==============================================================================
>>>> ---
>>>jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java
>>>(original)
>>>> +++
>>>jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java
>>>Sun Jul 23 15:48:41 2017
>>>> @@ -124,13 +124,26 @@ public class TestUnmodifiableJMeterVaria
>>>>      }
>>>>
>>>>      @Test
>>>> -    public void testEqualsObject() {
>>>> -        assertThat(unmodifiables, CoreMatchers.is(vars));
>>>> +    public void testEqualsObjectSymmetry() {
>>>> +        UnmodifiableJMeterVariables otherUnmodifiables = new
>>>UnmodifiableJMeterVariables(vars);
>>>> +        assertThat(unmodifiables,
>>>CoreMatchers.is(otherUnmodifiables));
>>>> +        assertThat(otherUnmodifiables,
>>>CoreMatchers.is(unmodifiables));
>>>> +    }
>>>> +
>>>> +    @Test
>>>> +    public void testEqualsObjectReflexivity() {
>>>> +        assertThat(unmodifiables, CoreMatchers.is(unmodifiables));
>>>> +    }
>>>> +
>>>> +    @Test
>>>> +    public void testEqualsObjectWithJMeterVariables() {
>>>> +        assertThat(unmodifiables.equals(vars),
>>>CoreMatchers.is(vars.equals(unmodifiables)));
>>>>      }
>>>>
>>>>      @Test
>>>>      public void testHashCode() {
>>>> -        assertThat(unmodifiables.hashCode(),
>>>CoreMatchers.is(vars.hashCode()));
>>>> +        UnmodifiableJMeterVariables otherUnmodifiables = new
>>>UnmodifiableJMeterVariables(vars);
>>>> +        assertThat(unmodifiables.hashCode(),
>>>CoreMatchers.is(otherUnmodifiables.hashCode()));
>>>>      }
>>>>
>>>>  }
>>>>
>>>>

Re: svn commit: r1802732 - in /jmeter/trunk: src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java

Posted by sebb <se...@gmail.com>.
On 31 July 2017 at 10:56, Felix Schumacher
<fe...@internetallee.de> wrote:
>
>
> Am 30. Juli 2017 22:14:08 MESZ schrieb sebb <se...@gmail.com>:
>>On 23 July 2017 at 16:48,  <fs...@apache.org> wrote:
>>> Author: fschumacher
>>> Date: Sun Jul 23 15:48:41 2017
>>> New Revision: 1802732
>>>
>>> URL: http://svn.apache.org/viewvc?rev=1802732&view=rev
>>> Log:
>>> Change equals and hashCode so that they are more independent from
>>JMeterVariables.
>>>
>>> Modified:
>>>
>>jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java
>>>
>>jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java
>>>
>>> Modified:
>>jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java
>>> URL:
>>http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java?rev=1802732&r1=1802731&r2=1802732&view=diff
>>>
>>==============================================================================
>>> ---
>>jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java
>>(original)
>>> +++
>>jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java
>>Sun Jul 23 15:48:41 2017
>>> @@ -40,8 +40,13 @@ class UnmodifiableJMeterVariables extend
>>>
>>>      @Override
>>>      public int hashCode() {
>>> -        return variables.hashCode();
>>> +        final int prime = 31;
>>> +        int result = 1;
>>> +        result = prime * result
>>
>>This is always 31.
>>
>>> +                + ((variables == null) ? 0 : variables.hashCode());
>>> +        return result;
>>
>>Not sure what the point of adding 31 is.
>
> It is the default implementation that eclipse generates. I was a bit lazy here. I kept the 31 as that way the hash code would be different to that of JMeterVariables.

But why does it need to be different?

> Felix
>
>>
>>Why not just use:
>>
>>return variables == null) ? 0 : variables.hashCode()
>>
>>>      }
>>> +
>>>
>>>      @Override
>>>      public String getThreadName() {
>>> @@ -88,8 +93,21 @@ class UnmodifiableJMeterVariables extend
>>>          return variables.get(key);
>>>      }
>>>
>>> +    @Override
>>>      public boolean equals(Object obj) {
>>> -        return variables.equals(obj);
>>> +        if (this == obj)
>>> +            return true;
>>> +        if (obj == null)
>>> +            return false;
>>> +        if (getClass() != obj.getClass())
>>> +            return false;
>>
>>Since null is not and instanceof anything, the last two checks can be
>>simplified to:
>>
>>    if (!obj instanceof UnmodifiableJMeterVariables) {
>>        return false;
>>    }
>>
>>> +        UnmodifiableJMeterVariables other =
>>(UnmodifiableJMeterVariables) obj;
>>> +        if (variables == null) {
>>> +            if (other.variables != null)
>>> +                return false;
>>> +        } else if (!variables.equals(other.variables))
>>> +            return false;
>>> +        return true;
>>>      }
>>>
>>>      @Override
>>>
>>> Modified:
>>jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java
>>> URL:
>>http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java?rev=1802732&r1=1802731&r2=1802732&view=diff
>>>
>>==============================================================================
>>> ---
>>jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java
>>(original)
>>> +++
>>jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java
>>Sun Jul 23 15:48:41 2017
>>> @@ -124,13 +124,26 @@ public class TestUnmodifiableJMeterVaria
>>>      }
>>>
>>>      @Test
>>> -    public void testEqualsObject() {
>>> -        assertThat(unmodifiables, CoreMatchers.is(vars));
>>> +    public void testEqualsObjectSymmetry() {
>>> +        UnmodifiableJMeterVariables otherUnmodifiables = new
>>UnmodifiableJMeterVariables(vars);
>>> +        assertThat(unmodifiables,
>>CoreMatchers.is(otherUnmodifiables));
>>> +        assertThat(otherUnmodifiables,
>>CoreMatchers.is(unmodifiables));
>>> +    }
>>> +
>>> +    @Test
>>> +    public void testEqualsObjectReflexivity() {
>>> +        assertThat(unmodifiables, CoreMatchers.is(unmodifiables));
>>> +    }
>>> +
>>> +    @Test
>>> +    public void testEqualsObjectWithJMeterVariables() {
>>> +        assertThat(unmodifiables.equals(vars),
>>CoreMatchers.is(vars.equals(unmodifiables)));
>>>      }
>>>
>>>      @Test
>>>      public void testHashCode() {
>>> -        assertThat(unmodifiables.hashCode(),
>>CoreMatchers.is(vars.hashCode()));
>>> +        UnmodifiableJMeterVariables otherUnmodifiables = new
>>UnmodifiableJMeterVariables(vars);
>>> +        assertThat(unmodifiables.hashCode(),
>>CoreMatchers.is(otherUnmodifiables.hashCode()));
>>>      }
>>>
>>>  }
>>>
>>>

Re: svn commit: r1802732 - in /jmeter/trunk: src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java

Posted by Felix Schumacher <fe...@internetallee.de>.

Am 30. Juli 2017 22:14:08 MESZ schrieb sebb <se...@gmail.com>:
>On 23 July 2017 at 16:48,  <fs...@apache.org> wrote:
>> Author: fschumacher
>> Date: Sun Jul 23 15:48:41 2017
>> New Revision: 1802732
>>
>> URL: http://svn.apache.org/viewvc?rev=1802732&view=rev
>> Log:
>> Change equals and hashCode so that they are more independent from
>JMeterVariables.
>>
>> Modified:
>>    
>jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java
>>    
>jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java
>>
>> Modified:
>jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java
>> URL:
>http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java?rev=1802732&r1=1802731&r2=1802732&view=diff
>>
>==============================================================================
>> ---
>jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java
>(original)
>> +++
>jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java
>Sun Jul 23 15:48:41 2017
>> @@ -40,8 +40,13 @@ class UnmodifiableJMeterVariables extend
>>
>>      @Override
>>      public int hashCode() {
>> -        return variables.hashCode();
>> +        final int prime = 31;
>> +        int result = 1;
>> +        result = prime * result
>
>This is always 31.
>
>> +                + ((variables == null) ? 0 : variables.hashCode());
>> +        return result;
>
>Not sure what the point of adding 31 is.

It is the default implementation that eclipse generates. I was a bit lazy here. I kept the 31 as that way the hash code would be different to that of JMeterVariables. 

Felix

>
>Why not just use:
>
>return variables == null) ? 0 : variables.hashCode()
>
>>      }
>> +
>>
>>      @Override
>>      public String getThreadName() {
>> @@ -88,8 +93,21 @@ class UnmodifiableJMeterVariables extend
>>          return variables.get(key);
>>      }
>>
>> +    @Override
>>      public boolean equals(Object obj) {
>> -        return variables.equals(obj);
>> +        if (this == obj)
>> +            return true;
>> +        if (obj == null)
>> +            return false;
>> +        if (getClass() != obj.getClass())
>> +            return false;
>
>Since null is not and instanceof anything, the last two checks can be
>simplified to:
>
>    if (!obj instanceof UnmodifiableJMeterVariables) {
>        return false;
>    }
>
>> +        UnmodifiableJMeterVariables other =
>(UnmodifiableJMeterVariables) obj;
>> +        if (variables == null) {
>> +            if (other.variables != null)
>> +                return false;
>> +        } else if (!variables.equals(other.variables))
>> +            return false;
>> +        return true;
>>      }
>>
>>      @Override
>>
>> Modified:
>jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java
>> URL:
>http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java?rev=1802732&r1=1802731&r2=1802732&view=diff
>>
>==============================================================================
>> ---
>jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java
>(original)
>> +++
>jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java
>Sun Jul 23 15:48:41 2017
>> @@ -124,13 +124,26 @@ public class TestUnmodifiableJMeterVaria
>>      }
>>
>>      @Test
>> -    public void testEqualsObject() {
>> -        assertThat(unmodifiables, CoreMatchers.is(vars));
>> +    public void testEqualsObjectSymmetry() {
>> +        UnmodifiableJMeterVariables otherUnmodifiables = new
>UnmodifiableJMeterVariables(vars);
>> +        assertThat(unmodifiables,
>CoreMatchers.is(otherUnmodifiables));
>> +        assertThat(otherUnmodifiables,
>CoreMatchers.is(unmodifiables));
>> +    }
>> +
>> +    @Test
>> +    public void testEqualsObjectReflexivity() {
>> +        assertThat(unmodifiables, CoreMatchers.is(unmodifiables));
>> +    }
>> +
>> +    @Test
>> +    public void testEqualsObjectWithJMeterVariables() {
>> +        assertThat(unmodifiables.equals(vars),
>CoreMatchers.is(vars.equals(unmodifiables)));
>>      }
>>
>>      @Test
>>      public void testHashCode() {
>> -        assertThat(unmodifiables.hashCode(),
>CoreMatchers.is(vars.hashCode()));
>> +        UnmodifiableJMeterVariables otherUnmodifiables = new
>UnmodifiableJMeterVariables(vars);
>> +        assertThat(unmodifiables.hashCode(),
>CoreMatchers.is(otherUnmodifiables.hashCode()));
>>      }
>>
>>  }
>>
>>

Re: svn commit: r1802732 - in /jmeter/trunk: src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java

Posted by sebb <se...@gmail.com>.
On 23 July 2017 at 16:48,  <fs...@apache.org> wrote:
> Author: fschumacher
> Date: Sun Jul 23 15:48:41 2017
> New Revision: 1802732
>
> URL: http://svn.apache.org/viewvc?rev=1802732&view=rev
> Log:
> Change equals and hashCode so that they are more independent from JMeterVariables.
>
> Modified:
>     jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java
>     jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java
>
> Modified: jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java
> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java?rev=1802732&r1=1802731&r2=1802732&view=diff
> ==============================================================================
> --- jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java (original)
> +++ jmeter/trunk/src/core/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java Sun Jul 23 15:48:41 2017
> @@ -40,8 +40,13 @@ class UnmodifiableJMeterVariables extend
>
>      @Override
>      public int hashCode() {
> -        return variables.hashCode();
> +        final int prime = 31;
> +        int result = 1;
> +        result = prime * result

This is always 31.

> +                + ((variables == null) ? 0 : variables.hashCode());
> +        return result;

Not sure what the point of adding 31 is.

Why not just use:

return variables == null) ? 0 : variables.hashCode()

>      }
> +
>
>      @Override
>      public String getThreadName() {
> @@ -88,8 +93,21 @@ class UnmodifiableJMeterVariables extend
>          return variables.get(key);
>      }
>
> +    @Override
>      public boolean equals(Object obj) {
> -        return variables.equals(obj);
> +        if (this == obj)
> +            return true;
> +        if (obj == null)
> +            return false;
> +        if (getClass() != obj.getClass())
> +            return false;

Since null is not and instanceof anything, the last two checks can be
simplified to:

    if (!obj instanceof UnmodifiableJMeterVariables) {
        return false;
    }

> +        UnmodifiableJMeterVariables other = (UnmodifiableJMeterVariables) obj;
> +        if (variables == null) {
> +            if (other.variables != null)
> +                return false;
> +        } else if (!variables.equals(other.variables))
> +            return false;
> +        return true;
>      }
>
>      @Override
>
> Modified: jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java
> URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java?rev=1802732&r1=1802731&r2=1802732&view=diff
> ==============================================================================
> --- jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java (original)
> +++ jmeter/trunk/test/src/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java Sun Jul 23 15:48:41 2017
> @@ -124,13 +124,26 @@ public class TestUnmodifiableJMeterVaria
>      }
>
>      @Test
> -    public void testEqualsObject() {
> -        assertThat(unmodifiables, CoreMatchers.is(vars));
> +    public void testEqualsObjectSymmetry() {
> +        UnmodifiableJMeterVariables otherUnmodifiables = new UnmodifiableJMeterVariables(vars);
> +        assertThat(unmodifiables, CoreMatchers.is(otherUnmodifiables));
> +        assertThat(otherUnmodifiables, CoreMatchers.is(unmodifiables));
> +    }
> +
> +    @Test
> +    public void testEqualsObjectReflexivity() {
> +        assertThat(unmodifiables, CoreMatchers.is(unmodifiables));
> +    }
> +
> +    @Test
> +    public void testEqualsObjectWithJMeterVariables() {
> +        assertThat(unmodifiables.equals(vars), CoreMatchers.is(vars.equals(unmodifiables)));
>      }
>
>      @Test
>      public void testHashCode() {
> -        assertThat(unmodifiables.hashCode(), CoreMatchers.is(vars.hashCode()));
> +        UnmodifiableJMeterVariables otherUnmodifiables = new UnmodifiableJMeterVariables(vars);
> +        assertThat(unmodifiables.hashCode(), CoreMatchers.is(otherUnmodifiables.hashCode()));
>      }
>
>  }
>
>