diff options
Diffstat (limited to 'appc-common/src/main/java/org/openecomp/appc/pool/CachedElement.java')
-rw-r--r-- | appc-common/src/main/java/org/openecomp/appc/pool/CachedElement.java | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/appc-common/src/main/java/org/openecomp/appc/pool/CachedElement.java b/appc-common/src/main/java/org/openecomp/appc/pool/CachedElement.java index e5456114d..d2b3c0a9f 100644 --- a/appc-common/src/main/java/org/openecomp/appc/pool/CachedElement.java +++ b/appc-common/src/main/java/org/openecomp/appc/pool/CachedElement.java @@ -171,23 +171,27 @@ public class CachedElement<T extends Closeable> implements Closeable, Invocation "unchecked", "nls" }) @Override - public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { + public Object invoke(Object proxy, Method method, Object[] args) throws Exception { Object result = null; - if (method.getName().equals("close")) { - if (released.compareAndSet(false, true)) { - if (!pool.isDrained()) { - pool.release((T) proxy); + switch (method.getName()) { + case "close": + if (released.compareAndSet(false, true)) { + if (!pool.isDrained()) { + pool.release((T) proxy); + } } - } - } else if (method.getName().equals("equals")) { - CacheManagement cm = (CacheManagement) proxy; - T other = (T) cm.getWrappedObject(); - result = element.equals(other); - } else if (method.getName().equals("getWrappedObject")) { - return element; - } else { - result = method.invoke(element, args); + break; + case "equals": + CacheManagement cm = (CacheManagement) proxy; + T other = (T) cm.getWrappedObject(); + result = element.equals(other); + break; + case "getWrappedObject": + return element; + default: + result = method.invoke(element, args); + break; } return result; |