Am 01.01.2016 um 18:50 schrieb Philippe Mouawad:
Hi Felix,
First Happy new year !
Happy new year.

Then , are you sure about your true parameter where you expect async ?
I think except for ProxyControl you meant to call
JMeterUtils.runSafe(false, new Runnable() {...}) . no ?
You are right, the flags have to be reverted. (see r1722543)

Thanks,
 Felix

Thanks

On Fri, Jan 1, 2016 at 1:51 PM, <[email protected]> wrote:

Author: fschumacher
Date: Fri Jan  1 12:51:20 2016
New Revision: 1722493

URL: http://svn.apache.org/viewvc?rev=1722493&view=rev
Log:
Make JMeterUtils#runSafe sync/async awt invocation configurable and
change the visualizers to use the async version.

Bugzilla Id: 58784

Modified:

jmeter/trunk/src/components/org/apache/jmeter/visualizers/AssertionVisualizer.java

jmeter/trunk/src/components/org/apache/jmeter/visualizers/ComparisonVisualizer.java

jmeter/trunk/src/components/org/apache/jmeter/visualizers/DistributionGraphVisualizer.java

jmeter/trunk/src/components/org/apache/jmeter/visualizers/GraphVisualizer.java

jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java

jmeter/trunk/src/components/org/apache/jmeter/visualizers/RespTimeGraphVisualizer.java

jmeter/trunk/src/components/org/apache/jmeter/visualizers/SplineVisualizer.java

jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java

jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java

jmeter/trunk/src/components/org/apache/jmeter/visualizers/SummaryReport.java

jmeter/trunk/src/components/org/apache/jmeter/visualizers/TableVisualizer.java

jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
     jmeter/trunk/src/core/org/apache/jmeter/util/JMeterUtils.java

jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
     jmeter/trunk/xdocs/changes.xml

Modified:
jmeter/trunk/src/components/org/apache/jmeter/visualizers/AssertionVisualizer.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/AssertionVisualizer.java?rev=1722493&r1=1722492&r2=1722493&view=diff

==============================================================================
---
jmeter/trunk/src/components/org/apache/jmeter/visualizers/AssertionVisualizer.java
(original)
+++
jmeter/trunk/src/components/org/apache/jmeter/visualizers/AssertionVisualizer.java
Fri Jan  1 12:51:20 2016
@@ -57,7 +57,7 @@ public class AssertionVisualizer extends
          sb.append(sample.getSampleLabel());
          sb.append(getAssertionResult(sample));
          sb.append("\n"); // $NON-NLS-1$
-        JMeterUtils.runSafe(new Runnable() {
+        JMeterUtils.runSafe(true, new Runnable() {
              @Override
              public void run() {
                  synchronized (textArea) {

Modified:
jmeter/trunk/src/components/org/apache/jmeter/visualizers/ComparisonVisualizer.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ComparisonVisualizer.java?rev=1722493&r1=1722492&r2=1722493&view=diff

==============================================================================
---
jmeter/trunk/src/components/org/apache/jmeter/visualizers/ComparisonVisualizer.java
(original)
+++
jmeter/trunk/src/components/org/apache/jmeter/visualizers/ComparisonVisualizer.java
Fri Jan  1 12:51:20 2016
@@ -60,7 +60,7 @@ public class ComparisonVisualizer extend

      @Override
      public void add(final SampleResult sample) {
-        JMeterUtils.runSafe(new Runnable() {
+        JMeterUtils.runSafe(true, new Runnable() {
              @Override
              public void run() {
                  DefaultMutableTreeNode currNode = new
DefaultMutableTreeNode(sample);

Modified:
jmeter/trunk/src/components/org/apache/jmeter/visualizers/DistributionGraphVisualizer.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/DistributionGraphVisualizer.java?rev=1722493&r1=1722492&r2=1722493&view=diff

==============================================================================
---
jmeter/trunk/src/components/org/apache/jmeter/visualizers/DistributionGraphVisualizer.java
(original)
+++
jmeter/trunk/src/components/org/apache/jmeter/visualizers/DistributionGraphVisualizer.java
Fri Jan  1 12:51:20 2016
@@ -108,7 +108,7 @@ public class DistributionGraphVisualizer

      @Override
      public void add(final SampleResult res) {
-        JMeterUtils.runSafe(new Runnable() {
+        JMeterUtils.runSafe(true, new Runnable() {
              @Override
              public void run() {
                  // made currentSample volatile

Modified:
jmeter/trunk/src/components/org/apache/jmeter/visualizers/GraphVisualizer.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/GraphVisualizer.java?rev=1722493&r1=1722492&r2=1722493&view=diff

==============================================================================
---
jmeter/trunk/src/components/org/apache/jmeter/visualizers/GraphVisualizer.java
(original)
+++
jmeter/trunk/src/components/org/apache/jmeter/visualizers/GraphVisualizer.java
Fri Jan  1 12:51:20 2016
@@ -131,7 +131,7 @@ public class GraphVisualizer extends Abs

      @Override
      public void add(final SampleResult res) {
-        JMeterUtils.runSafe(new Runnable() {
+        JMeterUtils.runSafe(true, new Runnable() {
              @Override
              public void run() {
                  updateGui(model.addSample(res));

Modified:
jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java?rev=1722493&r1=1722492&r2=1722493&view=diff

==============================================================================
---
jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java
(original)
+++
jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java
Fri Jan  1 12:51:20 2016
@@ -122,7 +122,7 @@ public class MailerVisualizer extends Ab
      @Override
      public void add(final SampleResult res) {
          if (getModel() != null) {
-            JMeterUtils.runSafe(new Runnable() {
+            JMeterUtils.runSafe(true, new Runnable() {
                  @Override
                  public void run() {
                      MailerModel model = ((MailerResultCollector)
getModel()).getMailerModel();

Modified:
jmeter/trunk/src/components/org/apache/jmeter/visualizers/RespTimeGraphVisualizer.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RespTimeGraphVisualizer.java?rev=1722493&r1=1722492&r2=1722493&view=diff

==============================================================================
---
jmeter/trunk/src/components/org/apache/jmeter/visualizers/RespTimeGraphVisualizer.java
(original)
+++
jmeter/trunk/src/components/org/apache/jmeter/visualizers/RespTimeGraphVisualizer.java
Fri Jan  1 12:51:20 2016
@@ -299,7 +299,7 @@ public class RespTimeGraphVisualizer ext
          if ((matcher == null) || (matcher.find())) {
              final long startTimeMS = sampleResult.getStartTime();
              final long startTimeInterval = startTimeMS / intervalValue;
-            JMeterUtils.runSafe(new Runnable() {
+            JMeterUtils.runSafe(true, new Runnable() {
                  @Override
                  public void run() {
                      synchronized (lock) {

Modified:
jmeter/trunk/src/components/org/apache/jmeter/visualizers/SplineVisualizer.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SplineVisualizer.java?rev=1722493&r1=1722492&r2=1722493&view=diff

==============================================================================
---
jmeter/trunk/src/components/org/apache/jmeter/visualizers/SplineVisualizer.java
(original)
+++
jmeter/trunk/src/components/org/apache/jmeter/visualizers/SplineVisualizer.java
Fri Jan  1 12:51:20 2016
@@ -94,7 +94,7 @@ public class SplineVisualizer extends Ab

      @Override
      public void add(final SampleResult res) {
-        JMeterUtils.runSafe(new Runnable() {
+        JMeterUtils.runSafe(true, new Runnable() {
              @Override
              public void run() {
                  model.add(res);

Modified:
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java?rev=1722493&r1=1722492&r2=1722493&view=diff

==============================================================================
---
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java
(original)
+++
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java
Fri Jan  1 12:51:20 2016
@@ -361,7 +361,7 @@ public class StatGraphVisualizer extends
              matcher = pattern.matcher(sampleLabel);
          }
          if ((matcher == null) || (matcher.find())) {
-            JMeterUtils.runSafe(new Runnable() {
+            JMeterUtils.runSafe(true, new Runnable() {
                  @Override
                  public void run() {
                      SamplingStatCalculator row = null;

Modified:
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java?rev=1722493&r1=1722492&r2=1722493&view=diff

==============================================================================
---
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java
(original)
+++
jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java
Fri Jan  1 12:51:20 2016
@@ -114,7 +114,7 @@ public class StatVisualizer extends Abst

      @Override
      public void add(final SampleResult res) {
-        JMeterUtils.runSafe(new Runnable() {
+        JMeterUtils.runSafe(true, new Runnable() {
              @Override
              public void run() {
                  SamplingStatCalculator row = null;

Modified:
jmeter/trunk/src/components/org/apache/jmeter/visualizers/SummaryReport.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SummaryReport.java?rev=1722493&r1=1722492&r2=1722493&view=diff

==============================================================================
---
jmeter/trunk/src/components/org/apache/jmeter/visualizers/SummaryReport.java
(original)
+++
jmeter/trunk/src/components/org/apache/jmeter/visualizers/SummaryReport.java
Fri Jan  1 12:51:20 2016
@@ -177,7 +177,7 @@ public class SummaryReport extends Abstr
      @Override
      public void add(final SampleResult res) {
          final String sampleLabel =
res.getSampleLabel(useGroupName.isSelected());
-        JMeterUtils.runSafe(new Runnable() {
+        JMeterUtils.runSafe(true, new Runnable() {
              @Override
              public void run() {
                  Calculator row = null;

Modified:
jmeter/trunk/src/components/org/apache/jmeter/visualizers/TableVisualizer.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/TableVisualizer.java?rev=1722493&r1=1722492&r2=1722493&view=diff

==============================================================================
---
jmeter/trunk/src/components/org/apache/jmeter/visualizers/TableVisualizer.java
(original)
+++
jmeter/trunk/src/components/org/apache/jmeter/visualizers/TableVisualizer.java
Fri Jan  1 12:51:20 2016
@@ -166,7 +166,7 @@ public class TableVisualizer extends Abs

      @Override
      public void add(final SampleResult res) {
-        JMeterUtils.runSafe(new Runnable() {
+        JMeterUtils.runSafe(true, new Runnable() {
              @Override
              public void run() {
                  if (childSamples.isSelected()) {

Modified:
jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java?rev=1722493&r1=1722492&r2=1722493&view=diff

==============================================================================
---
jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
(original)
+++
jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
Fri Jan  1 12:51:20 2016
@@ -131,7 +131,7 @@ implements ActionListener, TreeSelection
      /** {@inheritDoc} */
      @Override
      public void add(final SampleResult sample) {
-        JMeterUtils.runSafe(new Runnable() {
+        JMeterUtils.runSafe(true, new Runnable() {
              @Override
              public void run() {
                  updateGui(sample);

Modified: jmeter/trunk/src/core/org/apache/jmeter/util/JMeterUtils.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/util/JMeterUtils.java?rev=1722493&r1=1722492&r2=1722493&view=diff

==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/util/JMeterUtils.java
(original)
+++ jmeter/trunk/src/core/org/apache/jmeter/util/JMeterUtils.java Fri Jan
1 12:51:20 2016
@@ -1306,15 +1306,30 @@ public class JMeterUtils implements Unit
       * @param runnable {@link Runnable}
       */
      public static final void runSafe(Runnable runnable) {
+        runSafe(true, runnable);
+    }
+
+    /**
+     * Run the runnable in AWT Thread if current thread is not AWT thread
+     * otherwise runs call {@link SwingUtilities#invokeAndWait(Runnable)}
+     * @param synchronous flag, whether we will wait for the AWT Thread
to finish its job.
+     * @param runnable {@link Runnable}
+     */
+    public static final void runSafe(boolean synchronous, Runnable
runnable) {
          if(SwingUtilities.isEventDispatchThread()) {
              runnable.run();
          } else {
-            try {
-                SwingUtilities.invokeAndWait(runnable);
-            } catch (InterruptedException e) {
-                log.warn("Interrupted in thread
"+Thread.currentThread().getName(), e);
-            } catch (InvocationTargetException e) {
-                throw new Error(e);
+            if (synchronous) {
+                try {
+                    SwingUtilities.invokeAndWait(runnable);
+                } catch (InterruptedException e) {
+                    log.warn("Interrupted in thread "
+                            + Thread.currentThread().getName(), e);
+                } catch (InvocationTargetException e) {
+                    throw new Error(e);
+                }
+            } else {
+                SwingUtilities.invokeLater(runnable);
              }
          }
      }

Modified:
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java?rev=1722493&r1=1722492&r2=1722493&view=diff

==============================================================================
---
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
(original)
+++
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
Fri Jan  1 12:51:20 2016
@@ -846,7 +846,7 @@ public class ProxyControl extends Generi
          final GenericController sc = new GenericController();
          sc.setProperty(TestElement.GUI_CLASS, LOGIC_CONTROLLER_GUI);
          sc.setName("-------------------"); // $NON-NLS-1$
-        JMeterUtils.runSafe(new Runnable() {
+        JMeterUtils.runSafe(false, new Runnable() {
              @Override
              public void run() {
                  try {
@@ -876,7 +876,7 @@ public class ProxyControl extends Generi
          final GenericController sc = new GenericController();
          sc.setProperty(TestElement.GUI_CLASS, LOGIC_CONTROLLER_GUI);
          sc.setName(name);
-        JMeterUtils.runSafe(new Runnable() {
+        JMeterUtils.runSafe(false, new Runnable() {
              @Override
              public void run() {
                  try {
@@ -907,7 +907,7 @@ public class ProxyControl extends Generi
          sc.setIncludeTimers(false);
          sc.setProperty(TestElement.GUI_CLASS, TRANSACTION_CONTROLLER_GUI);
          sc.setName(name);
-        JMeterUtils.runSafe(new Runnable() {
+        JMeterUtils.runSafe(false, new Runnable() {
              @Override
              public void run() {
                   try {
@@ -1145,7 +1145,7 @@ public class ProxyControl extends Generi
              final long deltaTFinal = deltaT;
              final boolean firstInBatchFinal = firstInBatch;
              final JMeterTreeNode myTargetFinal = myTarget;
-            JMeterUtils.runSafe(new Runnable() {
+            JMeterUtils.runSafe(false, new Runnable() {
                  @Override
                  public void run() {
                      try {

Modified: jmeter/trunk/xdocs/changes.xml
URL:
http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1722493&r1=1722492&r2=1722493&view=diff

==============================================================================
--- jmeter/trunk/xdocs/changes.xml (original)
+++ jmeter/trunk/xdocs/changes.xml Fri Jan  1 12:51:20 2016
@@ -161,6 +161,7 @@ Summary
  <li><bug>58772</bug>Deprecate MongoDB related elements</li>
  <li><bug>58782</bug>ThreadGroup : Improve ergonomy</li>
  <li><bug>58165</bug>Show the time elapsed since the start of the load
test in GUI mode. Partly based on a contribution from Maxime Chassagneux
(maxime.chassagneux at gmail.com)</li>
+<li><bug>58784</bug>Make JMeterUtils#runSafe sync/async awt invocation
configurable and change the visualizers to use the async version.</li>
  </ul>
  <ch_section>Non-functional changes</ch_section>
  <ul>





Reply via email to