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 2013/08/27 14:50:05 UTC

Re: svn commit: r1517464 - in /jmeter/trunk/src: jorphan/org/apache/jorphan/exec/SystemCommand.java protocol/native/org/apache/jmeter/protocol/system/NativeCommand.java protocol/native/org/apache/jmeter/protocol/system/SystemSampler.java

On 26 August 2013 09:51,  <pm...@apache.org> wrote:
> Author: pmouawad
> Date: Mon Aug 26 08:51:03 2013
> New Revision: 1517464
>
> URL: http://svn.apache.org/r1517464
> Log:
> Bug 55403 - Enhancement to OS sampler: Support for timeout
> Fixed compilation error
> Bugzilla Id: 55403
>
> Modified:
>     jmeter/trunk/src/jorphan/org/apache/jorphan/exec/SystemCommand.java
>     jmeter/trunk/src/protocol/native/org/apache/jmeter/protocol/system/NativeCommand.java
>     jmeter/trunk/src/protocol/native/org/apache/jmeter/protocol/system/SystemSampler.java
>
> Modified: jmeter/trunk/src/jorphan/org/apache/jorphan/exec/SystemCommand.java
> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/jorphan/org/apache/jorphan/exec/SystemCommand.java?rev=1517464&r1=1517463&r2=1517464&view=diff
> ==============================================================================
> --- jmeter/trunk/src/jorphan/org/apache/jorphan/exec/SystemCommand.java (original)
> +++ jmeter/trunk/src/jorphan/org/apache/jorphan/exec/SystemCommand.java Mon Aug 26 08:51:03 2013
> @@ -26,7 +26,6 @@ import java.util.Collections;
>  import java.util.List;
>  import java.util.Map;
>
> -import org.apache.jmeter.util.JMeterUtils;
>  import org.apache.jorphan.util.JOrphanUtils;
>
>  /**
> @@ -34,7 +33,6 @@ import org.apache.jorphan.util.JOrphanUt
>   */
>  public class SystemCommand {
>
> -    private static final int POLL_INTERVAL = JMeterUtils.getPropDefault("os_sampler.poll_for_timeout", 100);
>      private StreamGobbler outputGobbler;
>      private final File directory;
>      private final Map<String, String> env;
> @@ -43,13 +41,14 @@ public class SystemCommand {
>      private final String stdout;
>      private final String stderr;
>      private final long timeoutMillis;
> +    private final int pollInterval;
>
>      /**
>       * @param env Environment variables appended to environment (may be null)
>       * @param directory File working directory (may be null)
>       */
>      public SystemCommand(File directory, Map<String, String> env) {
> -        this(directory, 0L, env, null, null, null);
> +        this(directory, 0L, 100, env, null, null, null);
>      }
>
>      /**
> @@ -57,15 +56,17 @@ public class SystemCommand {
>       * @param env Environment variables appended to environment (may be null)
>       * @param directory File working directory (may be null)
>       * @param timeoutMillis timeout in Milliseconds
> +     * @param pollInterval Value used to poll for Process execution end
>       * @param stdin File name that will contain data to be input to process (may be null)
>       * @param stdout File name that will contain out stream (may be null)
>       * @param stderr File name that will contain err stream (may be null)
>       */
> -    public SystemCommand(File directory, long timeoutMillis, Map<String, String> env, String stdin, String stdout, String stderr) {
> +    public SystemCommand(File directory, long timeoutMillis, int pollInterval, Map<String, String> env, String stdin, String stdout, String stderr) {
>          super();
>          this.timeoutMillis = timeoutMillis;
>          this.directory = directory;
>          this.env = env;
> +        this.pollInterval = pollInterval;
>          this.stdin = JOrphanUtils.nullifyIfEmptyTrimmed(stdin);
>          this.stdout = JOrphanUtils.nullifyIfEmptyTrimmed(stdout);
>          this.stderr = JOrphanUtils.nullifyIfEmptyTrimmed(stderr);
> @@ -157,7 +158,7 @@ public class SystemCommand {
>              long now = System.currentTimeMillis();
>              long finish = now + timeoutInMillis;
>              while (isAlive(proc) && (System.currentTimeMillis() < finish)) {
> -                Thread.sleep(POLL_INTERVAL);
> +                Thread.sleep(pollInterval);
>              }
>
>              if (isAlive(proc)) {
>
> Modified: jmeter/trunk/src/protocol/native/org/apache/jmeter/protocol/system/NativeCommand.java
> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/native/org/apache/jmeter/protocol/system/NativeCommand.java?rev=1517464&r1=1517463&r2=1517464&view=diff
> ==============================================================================
> --- jmeter/trunk/src/protocol/native/org/apache/jmeter/protocol/system/NativeCommand.java (original)
> +++ jmeter/trunk/src/protocol/native/org/apache/jmeter/protocol/system/NativeCommand.java Mon Aug 26 08:51:03 2013
> @@ -45,7 +45,7 @@ public class NativeCommand extends  org.
>       * @param stderr File name that will contain err stream
>       */
>      public NativeCommand(File directory, Map<String, String> env, String stdin, String stdout, String stderr) {
> -        super(directory, 0L, env, stdin, stdout, stderr);
> +        super(directory, 0L, 100, env, stdin, stdout, stderr);

Why use 100 here?

There should be no "magic" numbers in the code.

>      }
>
>  }
> \ No newline at end of file
>
> Modified: jmeter/trunk/src/protocol/native/org/apache/jmeter/protocol/system/SystemSampler.java
> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/native/org/apache/jmeter/protocol/system/SystemSampler.java?rev=1517464&r1=1517463&r2=1517464&view=diff
> ==============================================================================
> --- jmeter/trunk/src/protocol/native/org/apache/jmeter/protocol/system/SystemSampler.java (original)
> +++ jmeter/trunk/src/protocol/native/org/apache/jmeter/protocol/system/SystemSampler.java Mon Aug 26 08:51:03 2013
> @@ -38,6 +38,7 @@ import org.apache.jmeter.samplers.Sample
>  import org.apache.jmeter.services.FileServer;
>  import org.apache.jmeter.testelement.TestElement;
>  import org.apache.jmeter.testelement.property.TestElementProperty;
> +import org.apache.jmeter.util.JMeterUtils;
>  import org.apache.jorphan.exec.SystemCommand;
>  import org.apache.jorphan.logging.LoggingManager;
>  import org.apache.log.Logger;
> @@ -46,6 +47,9 @@ import org.apache.log.Logger;
>   * A sampler for executing a System function.
>   */
>  public class SystemSampler extends AbstractSampler {
> +
> +    private static final int POLL_INTERVAL = JMeterUtils.getPropDefault("os_sampler.poll_for_timeout", 100);
> +
>      private static final long serialVersionUID = 1;
>
>      // + JMX names, do not change their values
> @@ -146,7 +150,7 @@ public class SystemSampler extends Abstr
>                  "\nEnvironment:"+env+
>                  "\nExecuting:" + cmdLine.toString());
>
> -        SystemCommand nativeCommand = new SystemCommand(directory, getTimeout(), env, getStdin(), getStdout(), getStderr());
> +        SystemCommand nativeCommand = new SystemCommand(directory, getTimeout(), POLL_INTERVAL, env, getStdin(), getStdout(), getStderr());
>
>          try {
>              results.sampleStart();
>
>