You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by fp...@apache.org on 2013/09/18 15:14:08 UTC
svn commit: r1524398 - in /zookeeper/trunk: CHANGES.txt
src/java/main/org/apache/zookeeper/ClientCnxn.java
Author: fpj
Date: Wed Sep 18 13:14:07 2013
New Revision: 1524398
URL: http://svn.apache.org/r1524398
Log:
ZOOKEEPER-1753. ClientCnxn is not properly releasing the resources, which are used to ping RwServer (Rakesh R via fpj)
Modified:
zookeeper/trunk/CHANGES.txt
zookeeper/trunk/src/java/main/org/apache/zookeeper/ClientCnxn.java
Modified: zookeeper/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/trunk/CHANGES.txt?rev=1524398&r1=1524397&r2=1524398&view=diff
==============================================================================
--- zookeeper/trunk/CHANGES.txt (original)
+++ zookeeper/trunk/CHANGES.txt Wed Sep 18 13:14:07 2013
@@ -383,6 +383,9 @@ BUGFIXES:
ZOOKEEPER-1657. Increased CPU usage by unnecessary SASL checks (Philip K. Warren via fpj)
+ ZOOKEEPER-1753. ClientCnxn is not properly releasing the resources,
+ which are used to ping RwServer (Rakesh R via fpj)
+
IMPROVEMENTS:
ZOOKEEPER-1170. Fix compiler (eclipse) warnings: unused imports,
Modified: zookeeper/trunk/src/java/main/org/apache/zookeeper/ClientCnxn.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/main/org/apache/zookeeper/ClientCnxn.java?rev=1524398&r1=1524397&r2=1524398&view=diff
==============================================================================
--- zookeeper/trunk/src/java/main/org/apache/zookeeper/ClientCnxn.java (original)
+++ zookeeper/trunk/src/java/main/org/apache/zookeeper/ClientCnxn.java Wed Sep 18 13:14:07 2013
@@ -1161,25 +1161,40 @@ public class ClientCnxn {
LOG.info("Checking server " + addr + " for being r/w." +
" Timeout " + pingRwTimeout);
+ Socket sock = null;
+ BufferedReader br = null;
try {
- Socket sock = new Socket(addr.getHostName(), addr.getPort());
+ sock = new Socket(addr.getHostName(), addr.getPort());
sock.setSoLinger(false, -1);
sock.setSoTimeout(1000);
sock.setTcpNoDelay(true);
sock.getOutputStream().write("isro".getBytes());
sock.getOutputStream().flush();
sock.shutdownOutput();
- BufferedReader br = new BufferedReader(
+ br = new BufferedReader(
new InputStreamReader(sock.getInputStream()));
result = br.readLine();
- sock.close();
- br.close();
} catch (ConnectException e) {
// ignore, this just means server is not up
} catch (IOException e) {
// some unexpected error, warn about it
LOG.warn("Exception while seeking for r/w server " +
e.getMessage(), e);
+ } finally {
+ if (sock != null) {
+ try {
+ sock.close();
+ } catch (IOException e) {
+ LOG.warn("Unexpected exception", e);
+ }
+ }
+ if (br != null) {
+ try {
+ br.close();
+ } catch (IOException e) {
+ LOG.warn("Unexpected exception", e);
+ }
+ }
}
if ("rw".equals(result)) {