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 ae7d00a2693e25492a16eae3cd96c2da6bb9b8a1 Author: Jaroslav Tulach <jaroslav.tul...@apidesign.org> AuthorDate: Thu Dec 24 07:17:34 2020 +0100 Allow only one deferred processing before flush --- .../main/java/org/netbeans/html/presenters/spi/Generic.java | 12 ++++++++++-- .../org/netbeans/html/presenters/spi/test/GenericTCK.java | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) 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 723a3c9..3204355 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 @@ -706,6 +706,7 @@ abstract class Generic implements Fn.Presenter, Fn.KeepAlive, Flushable { } private StringBuilder deferred; + private boolean deferredDisabled; private Collection<Object> arguments = new LinkedList<Object>(); private StringBuilder getDeferred(boolean clear) { @@ -713,6 +714,9 @@ abstract class Generic implements Fn.Presenter, Fn.KeepAlive, Flushable { StringBuilder sb = deferred; if (clear) { deferred = null; + if (sb != null) { + deferredDisabled = true; + } } return sb; } @@ -753,6 +757,9 @@ abstract class Generic implements Fn.Presenter, Fn.KeepAlive, Flushable { log(Level.FINE, "flush#{1}: {0}", def, id); exec(id, Strings.flushExec(key, id).toString()); } + if (topMostCall() == null) { + deferredDisabled = false; + } } } @@ -931,9 +938,10 @@ abstract class Generic implements Fn.Presenter, Fn.KeepAlive, Flushable { arguments.add(args); synchronized (lock()) { + boolean synchronizedExecution = wait4js || deferredDisabled; int callId = nextCallId(); - sb.insert(0, Strings.invokeImplFn(id, wait4js, key, callId)); - if (wait4js) { + sb.insert(0, Strings.invokeImplFn(id, synchronizedExecution, key, callId)); + if (synchronizedExecution) { return exec(callId, sb.toString()); } else { deferExec(sb); diff --git a/generic/src/test/java/org/netbeans/html/presenters/spi/test/GenericTCK.java b/generic/src/test/java/org/netbeans/html/presenters/spi/test/GenericTCK.java index 872ad98..8c0ba9a 100644 --- a/generic/src/test/java/org/netbeans/html/presenters/spi/test/GenericTCK.java +++ b/generic/src/test/java/org/netbeans/html/presenters/spi/test/GenericTCK.java @@ -58,7 +58,7 @@ final class GenericTCK extends JavaScriptTCK { } } }); - cdl.await(3, TimeUnit.SECONDS); + cdl.await(1, TimeUnit.SECONDS); if (error[0] != null) { throw error[0]; } --------------------------------------------------------------------- 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