On 4 February 2012 16:54, Philippe Mouawad <philippe.moua...@gmail.com> wrote: > Hello, > I Will make it private.
OK, thanks. > It won't affect binary impl as abstract class returns null so it Will work > as today. OK I see. > Hâve to put it hère not to break current subclasses. > > Have I missed something? No, looks OK. > Regards > Philippe > > On Saturday, February 4, 2012, sebb <seb...@gmail.com> wrote: >> On 4 February 2012 15:01, <pmoua...@apache.org> wrote: >>> 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; >> >> Could the charset be private? >> There's a public getter/setter. >> >> Also, what is the default value? >> How will it affect binary implementations? >> >>> 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(); >>> >>> >> > > -- > Cordialement. > Philippe Mouawad.