Fix potential deadlock in CopycatTransport
Change-Id: Ic8ac913c25dcc68b66ec96767a60d44340c89568
Showing
1 changed file
with
2 additions
and
6 deletions
| ... | @@ -92,9 +92,7 @@ public class CopycatTransport implements Transport { | ... | @@ -92,9 +92,7 @@ public class CopycatTransport implements Transport { |
| 92 | public static Endpoint toEndpoint(Address address) { | 92 | public static Endpoint toEndpoint(Address address) { |
| 93 | return EP_LOOKUP_CACHE.computeIfAbsent(address, a -> { | 93 | return EP_LOOKUP_CACHE.computeIfAbsent(address, a -> { |
| 94 | try { | 94 | try { |
| 95 | - Endpoint endpoint = new Endpoint(IpAddress.valueOf(InetAddress.getByName(a.host())), a.port()); | 95 | + return new Endpoint(IpAddress.valueOf(InetAddress.getByName(a.host())), a.port()); |
| 96 | - ADDRESS_LOOKUP_CACHE.putIfAbsent(endpoint, address); | ||
| 97 | - return endpoint; | ||
| 98 | } catch (UnknownHostException e) { | 96 | } catch (UnknownHostException e) { |
| 99 | Throwables.propagate(e); | 97 | Throwables.propagate(e); |
| 100 | return null; | 98 | return null; |
| ... | @@ -112,9 +110,7 @@ public class CopycatTransport implements Transport { | ... | @@ -112,9 +110,7 @@ public class CopycatTransport implements Transport { |
| 112 | try { | 110 | try { |
| 113 | InetAddress host = InetAddress.getByAddress(endpoint.host().toOctets()); | 111 | InetAddress host = InetAddress.getByAddress(endpoint.host().toOctets()); |
| 114 | int port = endpoint.port(); | 112 | int port = endpoint.port(); |
| 115 | - Address address = new Address(new InetSocketAddress(host, port)); | 113 | + return new Address(new InetSocketAddress(host, port)); |
| 116 | - EP_LOOKUP_CACHE.putIfAbsent(address, endpoint); | ||
| 117 | - return address; | ||
| 118 | } catch (UnknownHostException e) { | 114 | } catch (UnknownHostException e) { |
| 119 | Throwables.propagate(e); | 115 | Throwables.propagate(e); |
| 120 | return null; | 116 | return null; | ... | ... |
-
Please register or login to post a comment