Description
The current implementation of hashCode() simply calls HashMap's hashCode(). Consequently, the hashCode changes whenever some changes occur in this property table. The endpoint's hashCode should be calculated on the immutable part to avoid confusion as the following abnormality can be observed:
Endpoint ep = ...
map = new HashMap<...>();
map.put(ep, "A");
assertNotNull(map.get(ep)); // okay
ep.put(USING_ADDRESSING, b);
assertEquals(ep, map.keySet().iterator().next()); // okay
assertNotNull(map.get(ep)); // error
This issue was discussed in dev@cxf:
http://cxf.547215.n5.nabble.com/org-apache-cxf-endpoint-EndpointImpl-may-not-be-used-as-a-hash-map-key-td4393354.html