Sfoglia il codice sorgente

Closing connection replaced to destroyObject method

Roman Nedzvetskiy 5 anni fa
parent
commit
0f5580b367

+ 0 - 3
kafka-ui-api/src/main/java/com/provectus/kafka/ui/cluster/util/JmxClusterUtil.java

@@ -75,9 +75,6 @@ public class JmxClusterUtil {
     private void closeConnectionExceptionally(String url, JMXConnector srv) {
         try {
             pool.invalidateObject(url, srv);
-            srv.close();
-        } catch (IOException ioe) {
-            log.error("Cannot close connection with {}", url);
         } catch (Exception e) {
             log.error("Cannot invalidate object in pool, {}", url);
         }

+ 12 - 0
kafka-ui-api/src/main/java/com/provectus/kafka/ui/cluster/util/JmxPoolFactory.java

@@ -1,5 +1,6 @@
 package com.provectus.kafka.ui.cluster.util;
 
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.pool2.BaseKeyedPooledObjectFactory;
 import org.apache.commons.pool2.PooledObject;
 import org.apache.commons.pool2.impl.DefaultPooledObject;
@@ -7,7 +8,9 @@ import org.apache.commons.pool2.impl.DefaultPooledObject;
 import javax.management.remote.JMXConnector;
 import javax.management.remote.JMXConnectorFactory;
 import javax.management.remote.JMXServiceURL;
+import java.io.IOException;
 
+@Slf4j
 public class JmxPoolFactory extends BaseKeyedPooledObjectFactory<String, JMXConnector> {
 
     @Override
@@ -19,4 +22,13 @@ public class JmxPoolFactory extends BaseKeyedPooledObjectFactory<String, JMXConn
     public PooledObject<JMXConnector> wrap(JMXConnector jmxConnector) {
         return new DefaultPooledObject<>(jmxConnector);
     }
+
+    @Override
+    public void destroyObject(String key, PooledObject<JMXConnector> p) {
+        try {
+            p.getObject().close();
+        } catch (IOException e) {
+            log.error("Cannot close connection with {}", key);
+        }
+    }
 }