You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by se...@apache.org on 2012/01/03 02:09:25 UTC
svn commit: r1226592 -
/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPSampler.java
Author: sebb
Date: Tue Jan 3 01:09:25 2012
New Revision: 1226592
URL: http://svn.apache.org/viewvc?rev=1226592&view=rev
Log:
Only generate socketKey once per sample
Modified:
jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPSampler.java
Modified: jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPSampler.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPSampler.java?rev=1226592&r1=1226591&r2=1226592&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPSampler.java (original)
+++ jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPSampler.java Tue Jan 3 01:09:25 2012
@@ -140,11 +140,11 @@ public class TCPSampler extends Abstract
return (String) cp.get(ERRKEY);
}
- private Socket getSocket() {
+ private Socket getSocket(String socketKey) {
Map<String, Object> cp = tp.get();
Socket con = null;
if (isReUseConnection()) {
- con = (Socket) cp.get(getSocketKey());
+ con = (Socket) cp.get(socketKey);
if (con != null) {
log.debug(this + " Reusing connection " + con); //$NON-NLS-1$
}
@@ -152,14 +152,14 @@ public class TCPSampler extends Abstract
if (con == null) {
// Not in cache, so create new one and cache it
try {
- closeSocket(); // Bug 44910 - close previous socket (if any)
+ closeSocket(socketKey); // Bug 44910 - close previous socket (if any)
SocketAddress sockaddr = new InetSocketAddress(getServer(), getPort());
con = new Socket();
con.connect(sockaddr, getConnectTimeout());
if(log.isDebugEnabled()) {
log.debug("Created new connection " + con); //$NON-NLS-1$
}
- cp.put(getSocketKey(), con);
+ cp.put(socketKey, con);
} catch (UnknownHostException e) {
log.warn("Unknown host for " + getLabel(), e);//$NON-NLS-1$
cp.put(ERRKEY, e.toString());
@@ -325,6 +325,7 @@ public class TCPSampler extends Abstract
initSampling();
firstSample=false;
}
+ String socketKey = getSocketKey();
log.debug(getLabel() + " " + getFilename() + " " + getUsername() + " " + getPassword());
SampleResult res = new SampleResult();
boolean isSuccessful = false;
@@ -332,7 +333,7 @@ public class TCPSampler extends Abstract
res.setSamplerData("Host: " + getServer() + " Port: " + getPort()); //$NON-NLS-1$ $NON-NLS-2$
res.sampleStart();
try {
- Socket sock = getSocket();
+ Socket sock = getSocket(socketKey);
if (sock == null) {
res.setResponseCode("500"); //$NON-NLS-1$
res.setResponseMessage(getError());
@@ -352,11 +353,11 @@ public class TCPSampler extends Abstract
} catch (ReadException ex) {
log.error("", ex);
isSuccessful=setupSampleResult(res, ex.getPartialResponse(), ex);
- closeSocket();
+ closeSocket(socketKey);
} catch (Exception ex) {
log.error("", ex);
isSuccessful=setupSampleResult(res, "", ex);
- closeSocket();
+ closeSocket(socketKey);
} finally {
// Calculate response time
res.sampleEnd();
@@ -365,7 +366,7 @@ public class TCPSampler extends Abstract
res.setSuccessful(isSuccessful);
if (!isReUseConnection()) {
- closeSocket();
+ closeSocket(socketKey);
}
}
return res;
@@ -445,9 +446,9 @@ public class TCPSampler extends Abstract
/**
* Close socket of current sampler
*/
- private void closeSocket() {
+ private void closeSocket(String socketKey) {
Map<String, Object> cp = tp.get();
- Socket con = (Socket) cp.remove(getSocketKey());
+ Socket con = (Socket) cp.remove(socketKey);
if (con != null) {
log.debug(this + " Closing connection " + con); //$NON-NLS-1$
try {