Skip to content

Commit e31aa06

Browse files
committed
refactor: use guard clause to reduce indentation
1 parent 81a898f commit e31aa06

File tree

2 files changed

+62
-66
lines changed

2 files changed

+62
-66
lines changed

library/src/main/java/com/alibaba/dcm/internal/InetAddressCacheUtilForJava8Minus.java

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,11 @@ private static Object newCacheEntry(String host, String[] ips, long expiration)
6868
private static volatile Constructor<?> constructorOfInetAddress$CacheEntry = null;
6969

7070
private static Constructor<?> getConstructorOfInetAddress$CacheEntry() throws ClassNotFoundException {
71-
if (constructorOfInetAddress$CacheEntry != null) {
72-
return constructorOfInetAddress$CacheEntry;
73-
}
71+
if (constructorOfInetAddress$CacheEntry != null) return constructorOfInetAddress$CacheEntry;
7472

7573
synchronized (InetAddressCacheUtilCommons.class) {
76-
if (constructorOfInetAddress$CacheEntry != null) { // double check
77-
return constructorOfInetAddress$CacheEntry;
78-
}
74+
// double check
75+
if (constructorOfInetAddress$CacheEntry != null) return constructorOfInetAddress$CacheEntry;
7976

8077
final String className = "java.net.InetAddress$CacheEntry";
8178
final Class<?> clazz = Class.forName(className);
@@ -172,23 +169,24 @@ private static Object getNegativeCacheOfInetAddress()
172169
*/
173170
private static Object[] getAddressCacheAndNegativeCacheOfInetAddress0()
174171
throws NoSuchFieldException, IllegalAccessException {
175-
if (ADDRESS_CACHE_AND_NEGATIVE_CACHE == null) {
176-
synchronized (InetAddressCacheUtilForJava8Minus.class) {
177-
if (ADDRESS_CACHE_AND_NEGATIVE_CACHE == null) { // double check
178-
final Field cacheField = InetAddress.class.getDeclaredField("addressCache");
179-
cacheField.setAccessible(true);
172+
if (ADDRESS_CACHE_AND_NEGATIVE_CACHE != null) return ADDRESS_CACHE_AND_NEGATIVE_CACHE;
173+
174+
synchronized (InetAddressCacheUtilForJava8Minus.class) {
175+
// double check
176+
if (ADDRESS_CACHE_AND_NEGATIVE_CACHE != null) return ADDRESS_CACHE_AND_NEGATIVE_CACHE;
180177

181-
final Field negativeCacheField = InetAddress.class.getDeclaredField("negativeCache");
182-
negativeCacheField.setAccessible(true);
178+
final Field cacheField = InetAddress.class.getDeclaredField("addressCache");
179+
cacheField.setAccessible(true);
183180

184-
ADDRESS_CACHE_AND_NEGATIVE_CACHE = new Object[]{
185-
cacheField.get(InetAddress.class),
186-
negativeCacheField.get(InetAddress.class)
187-
};
188-
}
189-
}
181+
final Field negativeCacheField = InetAddress.class.getDeclaredField("negativeCache");
182+
negativeCacheField.setAccessible(true);
183+
184+
ADDRESS_CACHE_AND_NEGATIVE_CACHE = new Object[]{
185+
cacheField.get(InetAddress.class),
186+
negativeCacheField.get(InetAddress.class)
187+
};
188+
return ADDRESS_CACHE_AND_NEGATIVE_CACHE;
190189
}
191-
return ADDRESS_CACHE_AND_NEGATIVE_CACHE;
192190
}
193191

194192
@Nullable

library/src/main/java/com/alibaba/dcm/internal/InetAddressCacheUtilForJava9Plus.java

Lines changed: 44 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -69,14 +69,11 @@ private static Object newCachedAddresses(String host, String[] ips, long expirat
6969
private static volatile Constructor<?> constructorOfInetAddress$CachedAddresses = null;
7070

7171
private static Constructor<?> getConstructorOfInetAddress$CachedAddresses() throws ClassNotFoundException {
72-
if (constructorOfInetAddress$CachedAddresses != null) {
73-
return constructorOfInetAddress$CachedAddresses;
74-
}
72+
if (constructorOfInetAddress$CachedAddresses != null) return constructorOfInetAddress$CachedAddresses;
7573

7674
synchronized (InetAddressCacheUtilCommons.class) {
77-
if (constructorOfInetAddress$CachedAddresses != null) { // double check
78-
return constructorOfInetAddress$CachedAddresses;
79-
}
75+
// double check
76+
if (constructorOfInetAddress$CachedAddresses != null) return constructorOfInetAddress$CachedAddresses;
8077

8178
final Class<?> clazz = Class.forName(inetAddress$CachedAddresses_ClassName);
8279

@@ -163,23 +160,24 @@ private static ConcurrentSkipListSet<Object> getExpirySetOfInetAddress() throws
163160
* @return {@link InetAddress#cache} and {@link InetAddress#expirySet}
164161
*/
165162
private static Object[] getCacheAndExpirySetOfInetAddress0() throws NoSuchFieldException, IllegalAccessException {
166-
if (ADDRESS_CACHE_AND_EXPIRY_SET == null) {
167-
synchronized (InetAddressCacheUtilForJava9Plus.class) {
168-
if (ADDRESS_CACHE_AND_EXPIRY_SET == null) { // double check
169-
final Field cacheField = InetAddress.class.getDeclaredField("cache");
170-
cacheField.setAccessible(true);
163+
if (ADDRESS_CACHE_AND_EXPIRY_SET != null) return ADDRESS_CACHE_AND_EXPIRY_SET;
171164

172-
final Field expirySetField = InetAddress.class.getDeclaredField("expirySet");
173-
expirySetField.setAccessible(true);
165+
synchronized (InetAddressCacheUtilForJava9Plus.class) {
166+
if (ADDRESS_CACHE_AND_EXPIRY_SET != null) return ADDRESS_CACHE_AND_EXPIRY_SET;
174167

175-
ADDRESS_CACHE_AND_EXPIRY_SET = new Object[]{
176-
cacheField.get(InetAddress.class),
177-
expirySetField.get(InetAddress.class)
178-
};
179-
}
180-
}
168+
final Field cacheField = InetAddress.class.getDeclaredField("cache");
169+
cacheField.setAccessible(true);
170+
171+
final Field expirySetField = InetAddress.class.getDeclaredField("expirySet");
172+
expirySetField.setAccessible(true);
173+
174+
ADDRESS_CACHE_AND_EXPIRY_SET = new Object[]{
175+
cacheField.get(InetAddress.class),
176+
expirySetField.get(InetAddress.class)
177+
};
178+
179+
return ADDRESS_CACHE_AND_EXPIRY_SET;
181180
}
182-
return ADDRESS_CACHE_AND_EXPIRY_SET;
183181
}
184182

185183
//////////////////////////////////////////////////////////////////////////////
@@ -267,32 +265,32 @@ public static DnsCache listInetAddressCache()
267265
private static volatile Field reqAddrFieldOfInetAddress$NameServiceAddress = null;
268266

269267
private static void initFieldsOfAddresses() throws ClassNotFoundException, NoSuchFieldException {
270-
if (reqAddrFieldOfInetAddress$NameServiceAddress == null) {
271-
synchronized (InetAddressCacheUtilForJava9Plus.class) {
272-
if (reqAddrFieldOfInetAddress$NameServiceAddress == null) { // double check
273-
///////////////////////////////////////////////
274-
// Fields of InetAddress$CachedAddresses
275-
///////////////////////////////////////////////
276-
final Class<?> cachedAddresses_Class = Class.forName(inetAddress$CachedAddresses_ClassName);
277-
278-
final Field inetAddressesFiled = cachedAddresses_Class.getDeclaredField("inetAddresses");
279-
inetAddressesFiled.setAccessible(true);
280-
inetAddressesFieldOfInetAddress$CacheAddress = inetAddressesFiled;
281-
282-
final Field expiryTimeFiled = cachedAddresses_Class.getDeclaredField("expiryTime");
283-
expiryTimeFiled.setAccessible(true);
284-
expiryTimeFieldOfInetAddress$CacheAddress = expiryTimeFiled;
285-
286-
///////////////////////////////////////////////
287-
// Fields of InetAddress$NameServiceAddresses
288-
///////////////////////////////////////////////
289-
final Class<?> nameServiceAddresses_Class = Class.forName(inetAddress$NameServiceAddresses_ClassName);
290-
291-
final Field reqAddrFiled = nameServiceAddresses_Class.getDeclaredField("reqAddr");
292-
reqAddrFiled.setAccessible(true);
293-
reqAddrFieldOfInetAddress$NameServiceAddress = reqAddrFiled;
294-
}
295-
}
268+
if (reqAddrFieldOfInetAddress$NameServiceAddress != null) return;
269+
270+
synchronized (InetAddressCacheUtilForJava9Plus.class) {
271+
if (reqAddrFieldOfInetAddress$NameServiceAddress != null) return;
272+
273+
///////////////////////////////////////////////
274+
// Fields of InetAddress$CachedAddresses
275+
///////////////////////////////////////////////
276+
final Class<?> cachedAddresses_Class = Class.forName(inetAddress$CachedAddresses_ClassName);
277+
278+
final Field inetAddressesFiled = cachedAddresses_Class.getDeclaredField("inetAddresses");
279+
inetAddressesFiled.setAccessible(true);
280+
inetAddressesFieldOfInetAddress$CacheAddress = inetAddressesFiled;
281+
282+
final Field expiryTimeFiled = cachedAddresses_Class.getDeclaredField("expiryTime");
283+
expiryTimeFiled.setAccessible(true);
284+
expiryTimeFieldOfInetAddress$CacheAddress = expiryTimeFiled;
285+
286+
///////////////////////////////////////////////
287+
// Fields of InetAddress$NameServiceAddresses
288+
///////////////////////////////////////////////
289+
final Class<?> nameServiceAddresses_Class = Class.forName(inetAddress$NameServiceAddresses_ClassName);
290+
291+
final Field reqAddrFiled = nameServiceAddresses_Class.getDeclaredField("reqAddr");
292+
reqAddrFiled.setAccessible(true);
293+
reqAddrFieldOfInetAddress$NameServiceAddress = reqAddrFiled;
296294
}
297295
}
298296

0 commit comments

Comments
 (0)