You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jmeter.apache.org by sebb <se...@gmail.com> on 2012/02/04 16:42:48 UTC

Re: svn commit: r1240514 - in /jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler: AbstractTCPClient.java TCPClient.java TCPClientImpl.java TCPSampler.java

On 4 February 2012 15:01,  <pm...@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();
>
>

Re: svn commit: r1240514 - in /jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler: AbstractTCPClient.java TCPClient.java TCPClientImpl.java TCPSampler.java

Posted by sebb <se...@gmail.com>.
On 4 February 2012 16:54, Philippe Mouawad <ph...@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 <se...@gmail.com> wrote:
>> On 4 February 2012 15:01,  <pm...@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.

Re: svn commit: r1240514 - in /jmeter/trunk/src/protocol/tcp/org/apache/jmeter/protocol/tcp/sampler: AbstractTCPClient.java TCPClient.java TCPClientImpl.java TCPSampler.java

Posted by Philippe Mouawad <ph...@gmail.com>.
Hello,
I Will make it private.
It won't affect binary impl as abstract class returns null so it Will work
as today.
Hâve to put it hère not to break current subclasses.

Have I missed something?

Regards
Philippe

On Saturday, February 4, 2012, sebb <se...@gmail.com> wrote:
> On 4 February 2012 15:01,  <pm...@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.