On 4 February 2012 15:01,  <[email protected]> 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();
>
>

Reply via email to