Author: pmouawad
Date: Sat Feb 4 15:01:11 2012
New Revision: 1240514
URL: http://svn.apache.org/viewvc?rev=1240514&view=rev
Log:
Bug 51737 - TCPSampler : Packet gets converted/corrupted
Added encoding to SampleResult
Modified:
jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/AbstractTCPClient.java
jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPClient.java
jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPClientImpl.java
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/AbstractTCPClient.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/AbstractTCPClient.java?rev=1240514&r1=1240513&r2=1240514&view=diff
==============================================================================
---
jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/AbstractTCPClient.java
(original)
+++
jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/AbstractTCPClient.java
Sat Feb 4 15:01:11 2012
@@ -22,7 +22,7 @@ package org.apache.jmeter.protocol.tcp.s
* Basic implementation of TCPClient interface.
*/
public abstract class AbstractTCPClient implements TCPClient {
-
+ protected String charset;
protected byte eolByte;
protected boolean useEolByte = false;
@@ -57,4 +57,18 @@ public abstract class AbstractTCPClient
public void teardownTest() {
}
+ /**
+ * @return the charset
+ */
+ public String getCharset() {
+ return charset;
+ }
+
+ /**
+ * @param charset the charset to set
+ */
+ public void setCharset(String charset) {
+ this.charset = charset;
+ }
+
}
Modified:
jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPClient.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPClient.java?rev=1240514&r1=1240513&r2=1240514&view=diff
==============================================================================
---
jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPClient.java
(original)
+++
jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPClient.java
Sat Feb 4 15:01:11 2012
@@ -75,6 +75,13 @@ public interface TCPClient {
* @return Returns the eolByte.
*/
public byte getEolByte();
+
+
+ /**
+ * Get the charset.
+ * @return Returns the charset.
+ */
+ public String getCharset();
/**
* Set the end-of-line/end-of-message byte.
Modified:
jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPClientImpl.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPClientImpl.java?rev=1240514&r1=1240513&r2=1240514&view=diff
==============================================================================
---
jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPClientImpl.java
(original)
+++
jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler/TCPClientImpl.java
Sat Feb 4 15:01:11 2012
@@ -57,11 +57,12 @@ public class TCPClientImpl extends Abstr
if (useEolByte) {
log.info("Using eolByte=" + eolByte);
}
- String charset = JMeterUtils.getProperty("tcp.charset");
- if(StringUtils.isEmpty(charset)) {
+ setCharset(charset);
+ String configuredCharset = JMeterUtils.getProperty("tcp.charset");
+ if(StringUtils.isEmpty(configuredCharset)) {
log.info("Using platform default charset:"+charset);
} else {
- log.info("Using charset:"+charset);
+ log.info("Using charset:"+configuredCharset);
}
}
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=1240514&r1=1240513&r2=1240514&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
Sat Feb 4 15:01:11 2012
@@ -348,15 +348,15 @@ public class TCPSampler extends Abstract
res.setSamplerData(req);
protocolHandler.write(os, req);
String in = protocolHandler.read(is);
- isSuccessful = setupSampleResult(res, in, null);
+ isSuccessful = setupSampleResult(res, in, null,
protocolHandler.getCharset());
}
} catch (ReadException ex) {
log.error("", ex);
- isSuccessful=setupSampleResult(res, ex.getPartialResponse(), ex);
+ isSuccessful=setupSampleResult(res, ex.getPartialResponse(),
ex,protocolHandler.getCharset());
closeSocket(socketKey);
} catch (Exception ex) {
log.error("", ex);
- isSuccessful=setupSampleResult(res, "", ex);
+ isSuccessful=setupSampleResult(res, "", ex,
protocolHandler.getCharset());
closeSocket(socketKey);
} finally {
// Calculate response time
@@ -377,12 +377,14 @@ public class TCPSampler extends Abstract
* @param sampleResult {@link SampleResult}
* @param readResponse Response read until error occured
* @param exception Source exception
+ * @param encoding sample encoding
* @return boolean if sample is considered as successful
*/
private boolean setupSampleResult(SampleResult sampleResult,
String readResponse,
- Exception exception) {
- sampleResult.setResponseData(readResponse, null);
+ Exception exception,
+ String encoding) {
+ sampleResult.setResponseData(readResponse, encoding);
sampleResult.setDataType(SampleResult.TEXT);
if(exception==null) {
sampleResult.setResponseCodeOK();