You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by pm...@apache.org on 2020/04/26 16:09:03 UTC
[jmeter] branch master updated: Bug 64381 - PreciseThroughputTimer:
On termination, log message contains negative value
This is an automated email from the ASF dual-hosted git repository.
pmouawad pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git
The following commit(s) were added to refs/heads/master by this push:
new 0772c1d Bug 64381 - PreciseThroughputTimer: On termination, log message contains negative value
0772c1d is described below
commit 0772c1d97e49aa6c5e615f1fc02ba7bd215c710b
Author: pmouawad <p....@ubik-ingenierie.com>
AuthorDate: Sun Apr 26 18:08:42 2020 +0200
Bug 64381 - PreciseThroughputTimer: On termination, log message contains
negative value
Also avoid calling System.currentTimeMillis() too much times
---
.../jmeter/timers/poissonarrivals/PreciseThroughputTimer.java | 11 ++++++-----
xdocs/changes.xml | 1 +
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/src/components/src/main/java/org/apache/jmeter/timers/poissonarrivals/PreciseThroughputTimer.java b/src/components/src/main/java/org/apache/jmeter/timers/poissonarrivals/PreciseThroughputTimer.java
index 090bd8f..4d482b1 100644
--- a/src/components/src/main/java/org/apache/jmeter/timers/poissonarrivals/PreciseThroughputTimer.java
+++ b/src/components/src/main/java/org/apache/jmeter/timers/poissonarrivals/PreciseThroughputTimer.java
@@ -43,7 +43,7 @@ import org.slf4j.LoggerFactory;
public class PreciseThroughputTimer extends AbstractTestElement implements Cloneable, Timer, TestStateListener, TestBean, ThroughputProvider, DurationProvider {
private static final Logger log = LoggerFactory.getLogger(PreciseThroughputTimer.class);
- private static final long serialVersionUID = 3;
+ private static final long serialVersionUID = 4;
private static final ConcurrentMap<AbstractThreadGroup, EventProducer> groupEvents = new ConcurrentHashMap<>();
/**
@@ -115,17 +115,18 @@ public class PreciseThroughputTimer extends AbstractTestElement implements Clone
synchronized (events) {
nextEvent = events.next();
}
- long delay = (long) (nextEvent * TimeUnit.SECONDS.toMillis(1) + testStarted - System.currentTimeMillis());
+ long now = System.currentTimeMillis();
+ long delay = (long) (nextEvent * TimeUnit.SECONDS.toMillis(1) + testStarted - now);
if (log.isDebugEnabled()) {
log.debug("Calculated delay is {}", delay);
}
delay = Math.max(0, delay);
long endTime = getThreadContext().getThread().getEndTime();
- if (endTime > 0 && System.currentTimeMillis() + delay > endTime) {
+ if (endTime > 0 && now + delay > endTime) {
throw new JMeterStopThreadException("The thread is scheduled to stop in " +
- (System.currentTimeMillis() - endTime) + " ms" +
+ (endTime - now) + " ms" +
" and the throughput timer generates a delay of " + delay + "." +
- " JMeter (as of 4.0) does not support interrupting of sleeping threads, thus terminating the thread manually."
+ " Terminating the thread manually."
);
}
return delay;
diff --git a/xdocs/changes.xml b/xdocs/changes.xml
index 1cda4ee..75b2ef2 100644
--- a/xdocs/changes.xml
+++ b/xdocs/changes.xml
@@ -245,6 +245,7 @@ invalidated when tree selection changes.</p>
<li><bug>64142</bug>Presence of DebugPostProcessor in Test plan breaks ActiveThread Over time in report due to missing information</li>
<li><bug>64196</bug>Recurse into sub samplers more deeply when checking assertions</li>
<li><bug>64196</bug>Recurse into sampleResults for <code>AbstractScopedTestElement#getSampleList</code></li>
+ <li><bug>64381</bug>PreciseThroughputTimer: On termination, log message contains negative value</li>
</ul>
<h3>Functions</h3>