You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by dj...@apache.org on 2006/12/02 17:14:48 UTC
svn commit: r481574 -
/db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/NetworkServerControlImpl.java
Author: djd
Date: Sat Dec 2 08:14:48 2006
New Revision: 481574
URL: http://svn.apache.org/viewvc?view=rev&rev=481574
Log:
DERBY-1965 Ensure sockets opened by NetworkServerControlImpl are explicitly closed.
Modified:
db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/NetworkServerControlImpl.java
Modified: db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/NetworkServerControlImpl.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/NetworkServerControlImpl.java?view=diff&rev=481574&r1=481573&r2=481574
==============================================================================
--- db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/NetworkServerControlImpl.java (original)
+++ db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/NetworkServerControlImpl.java Sat Dec 2 08:14:48 2006
@@ -794,6 +794,7 @@
writeCommandHeader(COMMAND_SHUTDOWN);
send();
readResult();
+ closeSocket();
// Wait up to 10 seconds for things to really shut down
// need a quiet ping so temporarily disable the logwriter
PrintWriter savWriter = logWriter;
@@ -869,6 +870,7 @@
writeLDString(password);
send();
readResult();
+ closeSocket();
}
@@ -904,6 +906,7 @@
send();
readResult();
consoleTraceMessage(connNum, on);
+ closeSocket();
}
/**
@@ -943,6 +946,7 @@
writeByte(on ? 1 : 0);
send();
readResult();
+ closeSocket();
}
/**
@@ -956,6 +960,7 @@
writeLDString(traceDirectory);
send();
readResult();
+ closeSocket();
}
/**
@@ -964,10 +969,14 @@
public String sysinfo()
throws Exception
{
- setUpSocket();
- writeCommandHeader(COMMAND_SYSINFO);
- send();
- return readStringReply("DRDA_SysInfoError.S");
+ try {
+ setUpSocket();
+ writeCommandHeader(COMMAND_SYSINFO);
+ send();
+ return readStringReply("DRDA_SysInfoError.S");
+ } finally {
+ closeSocket();
+ }
}
/**
@@ -976,10 +985,14 @@
public String runtimeInfo()
throws Exception
{
- setUpSocket();
- writeCommandHeader(COMMAND_RUNTIME_INFO);
- send();
- return readStringReply("DRDA_RuntimeInfoError.S");
+ try {
+ setUpSocket();
+ writeCommandHeader(COMMAND_RUNTIME_INFO);
+ send();
+ return readStringReply("DRDA_RuntimeInfoError.S");
+ } finally {
+ closeSocket();
+ }
}
/**
@@ -1013,6 +1026,7 @@
int newval = readInt();
consolePropertyMessage("DRDA_MaxThreadsChange.I",
new Integer(newval).toString());
+ closeSocket();
}
/**
@@ -1034,6 +1048,7 @@
int newval = readInt();
consolePropertyMessage("DRDA_TimeSliceChange.I",
new Integer(newval).toString());
+ closeSocket();
}
/**
@@ -1049,6 +1064,7 @@
writeCommandHeader(COMMAND_PROPERTIES);
send();
byte [] val = readBytesReply("DRDA_PropertyError.S");
+ closeSocket();
Properties p = new Properties();
try {
ByteArrayInputStream bs = new ByteArrayInputStream(val);
@@ -2046,6 +2062,26 @@
consolePropertyMessage("DRDA_OnOffValue.U", arg);
return false;
}
+
+ /**
+ * Close the resources associated with the opened socket.
+ * @throws IOException
+ */
+ private void closeSocket() throws IOException
+ {
+ try {
+ if (clientIs != null)
+ clientIs.close();
+ if (clientOs != null)
+ clientOs.close();
+ if (clientSocket != null)
+ clientSocket.close();
+ } finally {
+ clientIs = null;
+ clientOs = null;
+ clientSocket = null;
+ }
+ }
/**
* Set up client socket to send a command to the network server