This is an automated email from the ASF dual-hosted git repository.

jtulach pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans-html4j.git

commit ece738df357347cf9087d4538861ba6a47f837e9
Author: Jaroslav Tulach <jaroslav.tul...@apidesign.org>
AuthorDate: Sun Dec 27 07:40:57 2020 +0100

    Use -Dorg.netbeans.html.Generic.wait4js=true to always wait for JavaScript 
execution to finish
---
 .travis.yml                                                   |  2 +-
 generic/pom.xml                                               | 11 +++++++++++
 .../main/java/org/netbeans/html/presenters/spi/Generic.java   |  7 ++++++-
 .../netbeans/html/presenters/spi/ProtoPresenterBuilder.java   |  3 +++
 4 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 99f3300..cfa050e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -32,7 +32,7 @@ before_script:
 script:
   - $JAVA_HOME/bin/java -version
   - mvn install -DskipTests $ARGS
-  - mvn -q verify $ARGS
+  - mvn -q verify $ARGS -Dorg.netbeans.html.Generic.wait4js=true
   - if [ -n "$JAVADOC" ]; then mvn javadoc:aggregate; fi
 
 matrix:
diff --git a/generic/pom.xml b/generic/pom.xml
index 09b34a5..6500712 100644
--- a/generic/pom.xml
+++ b/generic/pom.xml
@@ -36,6 +36,7 @@
         <publicPackages>org.netbeans.html.presenters.spi</publicPackages>
         <publicMetaInf/>
         <sigtestPackages/>
+        <wait4js>false</wait4js>
     </properties>
 
     <dependencies>
@@ -95,6 +96,16 @@
                 </configuration>
             </plugin>
             <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <systemPropertyVariables>
+                        
<org.netbeans.html.Generic.wait4js>${wait4js}</org.netbeans.html.Generic.wait4js>
+                    </systemPropertyVariables>
+                    <skip>false</skip>
+                </configuration>
+            </plugin>
+            <plugin>
                 <groupId>org.netbeans.html</groupId>
                 <artifactId>html4j-maven-plugin</artifactId>
                 <executions>
diff --git 
a/generic/src/main/java/org/netbeans/html/presenters/spi/Generic.java 
b/generic/src/main/java/org/netbeans/html/presenters/spi/Generic.java
index 3a6a331..473749c 100644
--- a/generic/src/main/java/org/netbeans/html/presenters/spi/Generic.java
+++ b/generic/src/main/java/org/netbeans/html/presenters/spi/Generic.java
@@ -67,6 +67,7 @@ abstract class Generic implements Fn.Presenter, Fn.KeepAlive, 
Flushable {
         this.evalJS = evalJS;
         this.type = type;
         this.app = app;
+        this.resetDeferredDisabled();
     }
     
     final Object lock() {
@@ -764,11 +765,15 @@ abstract class Generic implements Fn.Presenter, 
Fn.KeepAlive, Flushable {
                 exec(id, Strings.flushExec(key, id).toString());
             }
             if (topMostCall() == null) {
-                deferredDisabled = false;
+                resetDeferredDisabled();
             }
         }
     }
 
+    private void resetDeferredDisabled() {
+        deferredDisabled = 
Boolean.getBoolean("org.netbeans.html.Generic.wait4js");
+    }
+
     final Object exec(int id, String fn) {
         assert Thread.holdsLock(lock());
         boolean first;
diff --git 
a/generic/src/main/java/org/netbeans/html/presenters/spi/ProtoPresenterBuilder.java
 
b/generic/src/main/java/org/netbeans/html/presenters/spi/ProtoPresenterBuilder.java
index f56b56b..cc79a20 100644
--- 
a/generic/src/main/java/org/netbeans/html/presenters/spi/ProtoPresenterBuilder.java
+++ 
b/generic/src/main/java/org/netbeans/html/presenters/spi/ProtoPresenterBuilder.java
@@ -26,6 +26,9 @@ import org.netbeans.html.boot.spi.Fn.Presenter;
 
 /** The <em>prototypical</em> presenter builder. Builds a {@link Presenter} 
based on
  * top of textual protocol transferred between JVM and JavaScript engines.
+ * Supports one additional configuration property; by setting
+ * {@code org.netbeans.html.Generic.wait4js}
+ * to {@code true} one enables, more reliable, yet possibly slower, mode.
  */
 public final class ProtoPresenterBuilder {
     private Evaluator loadScript;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to